メソッド引数 extends class implements interface
2023-10-02 21:51:03
質問
以下のようなクラスとインタフェースがあります。
public class BasicObject{...}
public interface CodeObject{...}
引数がBasicObject型でCodeObjectを実装している必要があるメソッドを作りたいのです。以下のコードを試してみましたが、clazzがCodeObjectを実装しているクラスであることが保証されません。
myMethod(Class<? extends BasicObject> clazz){...}
このようなことをしたいのですが、コンパイルできません。
myMethod(Class<? extends BasicObject implements CodeObject> clazz){...}
どのように解決するのですか?
パターン・クラスは
BasicObject
を拡張・実装し
CodeObject
(これは実際にはインターフェイスです)。 このように、メソッドシグネチャのワイルドカード定義で宣言された複数のクラスで行うことができます。
public <T extends BasicObject & CodeObject> void myMethod(Class<T> clazz)
これらの方法のいずれかを行うと動作しないことに注意してください。
-
public <T extends BasicObject, CodeObject> void myMethod(Class<T> clazz)
これは技術的には有効な構文ですが
CodeObject
を拡張する任意のクラスを受け入れます。BasicObject
を拡張するかどうかには関係なくCodeObject
. -
public void myMethod(Class<? extends BasicObject & CodeObject> clazz)
public void myMethod(Class<? extends BasicObject, CodeObject> clazz)
これらは、Javaによれば、単なる間違った構文です。
関連
-
シェルコマンドやスクリプトのJavaコール
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
FindBugの使用概要
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
java send https request prompt java.security.cert.について。
-
Junitのユニットテストエラー
-
Java基礎 - マッピングとQ/A
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み】クラスとインターフェイスを持つJavaジェネリック - Together