OnClickListenerは静的インターフェイスですが、OnClickListenerからインスタンス化しています。OnClickListenerインターフェイスからオブジェクトを作成する
私は混乱していて、私たちはJavaのインターフェイスからオブジェクトを生成できますか?
具体的なクラスを作成してOnClickListenerインターフェイスから継承しないのはなぜですか?
OnClickListenerは静的インターフェイスですが、OnClickListenerからインスタンス化しています。OnClickListenerインターフェイスからオブジェクトを作成する
私は混乱していて、私たちはJavaのインターフェイスからオブジェクトを生成できますか?
具体的なクラスを作成してOnClickListenerインターフェイスから継承しないのはなぜですか?
匿名内部クラスとして知られているものであること。 Java Standard EditionのSwingのドキュメントはhereをカバーしていますが、これはAndroid開発の多くの目的で使用されていると思います。これらのイベントを発生させるコンポーネントに対して、さまざまなイベントハンドラインターフェイスをより単純に接続することができます。たとえば、このOnClickListenerで実行されているアクションがどこにも必要でない場合、これを使用する唯一のクラスに制限しました。ソースツリーには別のクラスファイルは必要ありません。その特定のUIコンポーネントで何が起こっているのかが少しはっきりしています。
舞台裏では、コンパイラは実際にOnClickListener
を実装する自動的に生成された名前のクラスを作成しています。スタックトレースで、時にはcom.foo.Class$1
という名前のクラスが表示されることがあります。その$1
は、あなたのクラス用にコンパイラが生成するものです。
com.foo.Class $ 1のものは+1です。それを知らなかった: – Prine
ええ、私は最終的にそれを読んで終わったのは忘れていますが、Sunのドキュメントからすぐには分かりませんでした。私はそれが実際の言語仕様でより正確に指定されていると推測しています。 –
あなたは、インターフェイスをインスタンス化されていません。あなたが次のコードでやっていることは、直接インタフェースの実装を作成し、tv_onClickの変数に格納します。..
private OnClickListener tv_onClick = new OnClickListener() {
public void onClick(View arg0) { }
}
スタティックインターフェイスとは何ですか?あなたはインターフェイスからオブジェクトを生成していません。実際にはインターフェイスのインライン実装を作成しています... – DeyyyFF
_具体的なクラスを作成せず、OnClickListenerインターフェイスから継承しますか?_まさにそのことが起こっています。 。 – biziclop
しかし、新しい言葉があります。新しいOnClickListenerが等しいクラスHoobがOnClickListenerを実装していますか?新しい単語はオブジェクトを生成するために使用されていますか? – uzay95