Отказ от ответственности: Этот ответ был написан до того, как «фактический код» был добавлен к вопросу.
Вы не можете, потому что o
должно быть эффективно И, наконец, независимо от того, объявите вы это или нет.
Один из способов обойти это - изменить код на
Object[] o = new Object[1];
new A() {
methodA() {
new B() {
methodB() {
o[0] = ...
}
}
}
}
return o[0];
Конечно, это тоже не сработает, если вы на самом деле позвоните methodB
, прежде чем достигнуть оператора return o[0]
.