Java中如何让自定义MyArray类对象可直接通过System.out.println打印
解决方案
Java的System.out.println()方法接收对象参数时,会自动调用该对象的toString()方法获取要输出的字符串内容,默认的toString()返回格式为类名@哈希值,不符合你的需求,你只需要在MyArray类中重写toString()方法即可,另外注意测试代码中调用的静态实例计数器名为InstCount,你当前定义的变量名是Count,需要同步修改避免编译错误。
修改后的核心代码如下
import java.util.List; import java.util.ArrayList; class MyArray { // 修改变量名匹配测试要求的InstCount public static int InstCount = 0; private List<Integer> numbers = new ArrayList<Integer>(); MyArray() { InstCount++; } // 重写Object类的toString方法,直接返回内部ArrayList的格式化字符串 @Override public String toString() { return numbers.toString(); } // 其余你已经实现的方法保留即可,以下是补充的示例方法供参考 public int size() { return numbers.size(); } public boolean isEmpty() { return numbers.isEmpty(); } public void append(int num) { numbers.add(num); } public int getLast() { return numbers.get(numbers.size() - 1); } public int getFirst() { return numbers.get(0); } public void appendAll(List<Integer> list) { numbers.addAll(list); } }
修改完成后直接调用System.out.println(myarray1)就可以输出你需要的数组格式内容,完全符合测试要求。
内容的提问来源于stack exchange,提问作者Belushi
相关产品推荐
相关产品推荐

