【发布时间】:2014-03-16 18:28:11
【问题描述】:
我有两个 toString() 并且想通过只调用其中一个来打印它们。 我必须将 class1 的对象作为 Array,将 class2 作为 ArrayList。
主要:
public static void main(String[] args) {
Main main = new Main();
Class1 []class1 = new Class1[2];
ArrayList<Class2> class2List = new ArrayList<Class2>();
for(int i=0; i<class1.length; i++){
class1[i] = getClass1Obj();
class2List.add(getClass2Obj());
}
for(int i=0; i<class1.length; i++){
printClass1(class1, i);
}
}
public static void print(Class1[] cls1, int index){
System.out.println(cls1[index].toString());
}
第一类:
private Class2 class2;
@Override
public String toString() {
return getMethod() + getMethod2() + class2.toString();
}
类2:
@Override
public String toString() {
return getMethod3() + getMethod4();
}
这不起作用。可能是因为我创建不同对象的方式?
【问题讨论】:
-
在什么情况下不起作用?
-
当我只打印来自 class1 的 toString 时它可以工作
-
您遇到什么错误?也许 class2 为空。我没看到你在哪里做 setClass2(class2);
-
我得到一个空指针异常。
-
鉴于您在此处发布的代码,无法诊断您的问题。请添加更多相关代码,例如
printClass1(s)的正文以及所有getMethod#()和getObject#()。
标签: java arrays methods arraylist tostring