Можно ли каким-то образом уточнить параметры final для разрешения конфликтов имен с анонимными членами класса?

"Зачем ты это делаешь, что с тобой не так?" тем не менее, есть ли способ сделать это без изменения имени конечного параметра метода?

private Foo createAnonymousFoo(final Bar bar) {
    return new Foo() {
        private Bar bar = SomeUnknownScopeQualifier.bar;

        public Bar getBar() {
            return bar;
        }

        public void doSomethingThatReassignsBar() {
            bar = bar.createSomeDerivedInstanceOfBar();
        }
    };
}

Очевидно, что без вызова doSomethingThatReassignsBar вам не понадобился бы элемент Bar и так далее. В этом случае простое исправление состоит в том, чтобы изменить final Bar barна что-то вроде final Bar startBar, и тогда назначение в порядке. Но из любопытства, можно ли конкретно сослаться наfinal Bar(Подобно тому, как вы сказали быSuper.this)?

9
задан Doug Moscrop 13 April 2012 в 16:34
поделиться