Мне нужно было вернуть значение из анонимного внутреннего класса.Конечно, внутренние классы могут закрываться только по окончательным переменным, что приводит к этому ужасному обходному пути:
public String sampleMethod(){
final String[] output = new String[1];
findResult(new SampleOperation(){
@Override
private void perform(){
output[0] = "result";
}
});
return output[0];
}
private void findResult(SampleOperation op){
op.perform();
}
private static interface SampleOperation {
void perform();
}
Очевидно, упрощенный пример;здесь класс легко удаляется, но главная проблема в этом.Если есть зависимость внизу (внутри findResult (), например, защелки, которая должна быть запущена), то развертывание такого класса становится непрактичным.запахи, которые я когда-либо сталкивался.
Есть ли разумный способ получить тип возврата от такого делегата?(т.е. не использовать это?)