2016-03-14 32 views
14

私は匿名の内部クラスの中にあり、外部クラスのインスタンスを参照したいと考えています。 Javaでは、あいまいさを解決するために、クラス名の前に.thisを使用して参照することができます。のような:MainActivity.this。私はコトリンで同じことをどうやって達成することができますか?なぜなら、コンパイラは'expression 'this' cannot be a selector(occur after a dot)'という文句をしているからです。ありがとう!Kotlinで外部クラスのインスタンスを参照する方法は?

答えて

26

[email protected]を使用して、外部クラスインスタンスを参照できます。

ヒント:構文も覚えていないので、Javaで単純な例を書いてIntelliJに答えを見つけるためにクラスをKotlinに変換するように頼んだだけです。

+3

別の「トリック」があります。 'val a:MainActivity ='という正しい型の変数を記述し、スマートコンプリート(Ctrl + Shift + Space)を呼び出します。 IntelliJは 'this @ MainActivity'という表現を提案します。 –

+1

誰かが尋ねるように感じる場合のフォローアップの質問:なぜこれはJavaでは同じではありませんか?これは他のどこにも見られなかった非常に奇妙な構文です。 –

関連する問題