所以问题是方法" print()"只能在main void中使用。当我尝试在" changeAccount()"中使用它时它说"找不到符号"。
public class Main {
public static ArrayList createAccount(ArrayList accountList) {
Account account1 = new Account();
accountList.add(account1);
return accountList;
}
public static int changeAccount(ArrayList accountList) {
accountList.get(0).print();
}
public static void main(String[] args) {
ArrayList<Account> accountList = new ArrayList<>(0);
createAccount(tiliTaulukko);
accountList.get(0).print();
}
}
现在这里是调用print方法的地方。
public class Account {
public void print(){
}
}
答案 0 :(得分:3)
在accountList
方法中,参数ArrayList
被声明为ArrayList<Account>
,而不是accountList.get(0)
,因此java.lang.Object
的类型将为print()
},没有定义history -c; history -w
方法。
答案 1 :(得分:2)
您的问题是accountList.get(0)
返回的类型与您的两种方法不同。
在main
方法中,您已将accountList
定义为ArrayList<Account>
:
public static void main(String[] args) {
ArrayList<Account> accountList = new ArrayList<>(0);
...
}
因此,当您致电accountList.get(0)
时,您会收到Account
,并且可以在其上运行print()
而不会出错。
在changeAccount
方法中,您已将accountList
参数定义为原始 ArrayList:
public static int changeAccount(ArrayList accountList) {
...
}
因此,当您致电accountList.get(0)
时,您会收到Object
,但没有print()
方法。
将参数类型更改为ArrayList<Account>
:
public static int changeAccount(ArrayList<Account> accountList) {
//This should now work
accountList.get(0).print();
...
}