"なぜあなたは何をおこしているのですか?"それにもかかわらず、最終メソッドのパラメータ名を変更せずにこれを達成する方法はありますか?匿名クラスメンバーとの名前の競合を解決するために、最終パラメータを何らかの方法で修飾できますか?
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 startBar
のように変更することです。割り当ては問題ありません。しかし、好奇心から、具体的にはfinal Bar
(Super.this
と同じように)を参照することは可能ですか?
「なぜこのことをやっているのですか? :) – jpm
あなたが想像しているように、実際には批判的ではありません。私はドキュメントビルダーを作成し、訪問者パターンを使ってアイテムを書き出していました。スプレッドシートの場合は、単に「startCell」(最後のメソッドのパラメータ)で始まり、 'cell = cell.nextCell() '。ここで、cellは書き込むItemVisitorの現在のセルです。 –