首页 > 解决方案 > 如何返回另一个类调用的数组?

问题描述

所以我之前问了一个关于在 Java 中返回数组的问题,我得到了答案,现在我的代码用 getter 更新了,但是我不断得到一些类似的东西:

Phone@b08deb 

作为输出,这不是我想要的,如果我要执行以下操作:

return arr[1];

它告诉我Phone无法转换为Phone [],我非常迷茫,不知道如何简单地让编译器从数组中吐出数字“00000”(我知道我不知道)需要初始化数组,因为它默认为 0)

问题链接: 如何将数组返回给 Java 中的另一个类?

更新代码:

class TheDriverClass
{
    public static void main(String[] args)
    {
        Phone p = new Phone(5);
        System.out.println(p); 
// Here it's supposed to return the values of an array with size 5, 
//so it should print out 00000
     }
}

接下来我上课电话:

class Phone
{
   private Phone[] arr; //I'm supposed to keep the array private
   public Phone(int theLength){
      arr = new Phone[size];
   }
   public Phone[] getPhone(){
      return arr;
   }
}

标签: javaarrays

解决方案


当您 System.out.println() 一个数组时,它基本上会打印出数组指针。

你需要像 Arrays.toString(array) 这样的东西,它会在每个元素上调用 toString 并打印出人类可读的东西。

还要有一个可以阅读的电话。您还需要覆盖其上的 toString()。

class Phone
{
   private int[] numbers; //I'm supposed to keep the array private
   public Phone(int theLength){
       numbers = new int[theLength];
   }
   public int[] getPhone(){
      return numbers;
   }

   @Override
   public String toString() {
       return Arrays.toString(numbers);// also can use  return Arrays.toString(numbers).replaceAll(",|\\[|\\]| ", ""); to clean up the , and []s
   }
}

推荐阅读