我正在尝试在适配器中声明并初始化最终变量,以便在OnLongClickListener()
声明中使用该变量。问题是变量正在被一个可能引发失败异常的方法初始化,因此初始化必须在try / catch的上下文中进行。在异常块中,有一个回退值,而是指定最终变量。这一切都发生在被覆getView()
的{{1}}内。
我的问题是,有一种光滑的方法吗?我通过在try / catch之外声明一个临时变量,并在try / catch中初始化它,然后在try / catch块之后使用临时变量的结果声明并初始化最终变量来解决这个问题。这只是感觉太乱了。
代码:
ArrayAdapter<T>
答案 0 :(得分:2)
移动逻辑以使Vehicle进入自己的方法是很好的。它使它可重复使用,更容易阅读。
private Vehicle getVehicle(int position) {
try {
return Data.getVehicle(values.get(position).getId());
} catch (ObjectNotFoundException e) {
Log.e(TAG, e.getMessage() + "-- unable to find vehicle while getting list item vehicle for vehicles tab fragment");
return values.get(position);
}
}
然后回到原来的方法中:
final Vehicle vehicle = getVehicle(position);