Я определяю обратный вызов и хотел бы сослаться на обратный вызов внутри себя.Компилятору это не нравится и он утверждает, что переменная, ссылающаяся на обратный вызов, не инициализирована.Вот код:
final Runnable callback = new Runnable() {
public void run() {
if (someCondition()) {
doStuffWith(callback); // <<--- compiler says "the local variable callback may not be initialized"
}
}
};
// Here callback is defined, and is certainly defined later after I actually do something with callback!
Очевидно, что компилятор ошибается, так как к тому времени, когда мы достигаем внутренний обратный вызов метода, определен.Как мне сказать компилятору, что этот код в порядке, или как я могу написать его по-другому, чтобы успокоить компилятор?Я не сделал много Java, поэтому я мог бы не туда лаять.Есть ли другой идиоматический способ сделать это?Мне это кажется довольно простой конструкцией.
edit: Конечно, это было слишком легко.Спасибо за все быстрые ответы!