Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用getter方法时显示数组类名的程序_Java_Arrays_Encapsulation_Setter_Getter - Fatal编程技术网

Java 使用getter方法时显示数组类名的程序

Java 使用getter方法时显示数组类名的程序,java,arrays,encapsulation,setter,getter,Java,Arrays,Encapsulation,Setter,Getter,我只想使用getter和setter方法扫描和显示数组。它在setter中运行良好,但当我试图调用getter方法而不是显示数组元素时,它会显示数组类名。如何使用getter方法显示数组元素 public class ArrayElements { private int[] arrayElements; public int[] getArrayElements() { return this.arrayElements; } pu

我只想使用getter和setter方法扫描和显示数组。它在setter中运行良好,但当我试图调用getter方法而不是显示数组元素时,它会显示数组类名。如何使用getter方法显示数组元素

    public class ArrayElements {

    private int[] arrayElements;

    public int[] getArrayElements() {
        return this.arrayElements;
    }

    public void setArrayElements(int[] arrayElements) {
        this.arrayElements = arrayElements;
    }
}

试着这样做:

System.out.println(Arrays.toString(arrayElements.getArrayElements());

您可以找到其他解决方案来显示您应该使用的阵列元素

System.out.println(Arrays.toString(arrayElements.getArrayElements()));

您的调用只显示int数组的内存地址。

除了其他答案之外,还解释了为什么第一眼看到的结果会很奇怪

每次调用
System.out.println(object)
并在那里传递一些
object
,在内部
println()中调用
toString()
方法。因此该调用等于
System.out.println(object.toString())
。这是为了获取要打印的对象的有效字符串表示形式

数组是一种引用类型,其类型为
Object
。您不需要重写数组的
toString()
方法,因此它的默认实现将下降到
Object
类。
Object
class
toString()
方法的实现:

public String toString()
{
      return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
正如您在这里看到的,这个方法以十六进制格式打印出类名、符号“@”和hashcode


请参阅此处的参考资料:

感谢您对问题的详细解释:)。我尝试了数组。toString和它worked@HarshPithadia如果你认为答案对你有用的话,就考虑接受答案吧!也许甚至不是我的答案,其他人的答案也是有效的,更接近你最初的问题。
System.out.println(Arrays.toString(arrayElements.getArrayElements()));
public String toString()
{
      return getClass().getName()+"@"+Integer.toHexString(hashCode());
}