[解決済み] Kotlinで抽象クラスの匿名クラスのインスタンスを作成する方法は?
2022-05-07 05:17:26
質問
と仮定します。
KeyAdapter
は、オーバーライド可能ないくつかのメソッドを持つ抽象クラスです。
javaでは、私はすることができます。
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
Kotlinで同じことをするには?
どのように解決するのですか?
から Kotlin言語公式ドキュメント :
window.addMouseListener(object : MouseAdapter() {
override fun mouseClicked(e : MouseEvent) {
// ...
}
目の前の問題に適用される
val keyListener = object : KeyAdapter() {
override fun keyPressed(keyEvent : KeyEvent) {
// ...
}
Peter Lamberg が指摘したように、匿名クラスが実際には機能インターフェイスの実装である場合 ( つまり、抽象クラスではなく ), SAMコンバージョンズ を使用すると、この記述をさらに簡略化することができます。
val keyListener = KeyAdapter { keyEvent ->
// ...
}
また、以下の点にもご注意ください。 本論 JavaとKotlinで定義されたインターフェースの使い方の違いについて。
関連
-
Dateが型に解決できない問題を解決する
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] いつ使うか。Java 8+のインターフェイスのデフォルトメソッドと、抽象的なメソッドの比較
-
[解決済み] Objective-Cで抽象クラスを作成する
-
[解決済み] 抽象クラスをユニットテストする方法:スタブで拡張する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
Java Exceptionが発生しました エラー解決
-
ファインバグタイプ
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
Methodのinvokeメソッド実装のJavaリフレクション
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決