在loop / try / catch java中使用外部变量

时间:2012-07-11 23:25:32

标签: java

让我们嘲笑我们:

final JList list = new JList(buffer.toArray()); 

我想声明一个JList,但我从SQL查询中获取缓冲区变量,因此,在try循环中。有没有办法在其中使用在try / catch之外声明的变量?

3 个答案:

答案 0 :(得分:2)

再次,如我在other thread中所述,在循环或阻止之前声明

答案 1 :(得分:1)

通过在try块之外声明变量,如下所示:

JList list = null;
try {
    list = new JList(buffer.toArray());
} catch (SomeNastyException eekwhatthebleepwentwrong) {
    // at least print some info about the exception
}

答案 2 :(得分:0)

我认为这可能就是你所追求的:

JList list = null;
try {
    ...
    list = new JList(buffer.toArray());
    final JList finalist = list;
    ... instantiate anonymous class that refers to finalist
} finally {
    if (list != null) {
        ....
    }
}

或者如果try / catch / finally ... {/ p>,final必须是最终的

JList list = null;
try {
    ...
    list = new JList(buffer.toArray());
} finally {
    if (list != null) {
        ....
    }
}
final JList finalist = list;

final这里只会略微复杂化,但创建一个与非决赛相同价值的本地决赛的“技巧”足以应对它。

(如果由于这个原因不需要final修饰符,请删除它。这只会导致问题。)