gpt4 book ai didi

java - 使用 catch block 中的方法将对象分配给变量

转载 作者:行者123 更新时间:2023-12-01 12:58:44 25 4
gpt4 key购买 nike

当我尝试编译代码时,出现错误无法找到 .size().get(int) 的符号。

如果我将 for 循环移到 catch block 之外,则会出现找不到符号错误currentUserDiary 变量。

getExisitingDiaries() 返回一个 DiaryBook 所以我认为这会起作用。

只是想知道以这种方式将对象分配给变量是否有问题,或者我的代码的其余部分是否有问题。

我必须使用 catch block ,因为这些方法是从文本文件读取的。

AccountList aListOb = new AccountList();
try {
aListOb.loadExistingDiaries(myAccountName);
DiaryBook currentUserDiary = new DiaryBook();
currentUserDiary = aListOb.getExistingDiaries(myAccountName);

for (int i = 0; i < currentUserDiary.size(); i++) {
System.out.println(currentUserDiary.get(i));
}

} catch (IOException e) {

}

这些方法位于 AccountList 类中:

public void loadExistingDiaries(String name) throws IOException {
for(int i = 0; i < aList.size(); i++)
{
if (aList.contains(new Account(name, null))) {
aList.get(i).loadExistingDiaries();
break;
}
}
}

public DiaryBook getExistingDiaries(String name) throws IOException {
DiaryBook d = new DiaryBook();
for(int i = 0; i < aList.size(); i++)
{
if (aList.contains(new Account(name, null))) {
aList.get(i).loadExistingDiaries();
d = aList.get(i).getDiaryBook();
break;
}
}
return d;
}

最佳答案

在 try block 内声明的变量的范围是 try block 本身,尝试从外部访问它会导致编译错误,因为该变量不可见。

如果您想在 try 之外使用该变量,您也需要在外部声明它。

DiaryBook currentUserDiary = null;

try {
aListOb.loadExistingDiaries(myAccountName);
currentUserDiary = aListOb.getExistingDiaries(myAccountName);

for (int i = 0; i < currentUserDiary.size(); i++) {
System.out.println(currentUserDiary.get(i));
}

} catch (IOException e) {

}

if(currentUserDiary != null){
//Do your business
}

关于java - 使用 catch block 中的方法将对象分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com