[解決済み】クラスとインターフェイスを持つJavaジェネリック - Together
質問
クラスオブジェクトが欲しいのですが、それが表すクラスがクラスAを拡張し、インターフェイスBを実装するように強制したいのです。
できるんです。
Class<? extends ClassA>
または
Class<? extends InterfaceB>
が、両方はできません。 何か方法はないでしょうか?
どのように解決するのですか?
実は、あなたは できること は好きなようにしてください。 複数のインターフェイスやクラスとインターフェイスを提供したい場合は、ワイルドカードを以下のようにする必要があります。
<T extends ClassA & InterfaceB>
をご覧ください。
ジェネリック・チュートリアル
で、特に、sun.com の
境界型パラメータ
のセクションをご覧ください。 実際には、複数のインターフェイスをリストアップすることができます。
& InterfaceName
を、必要なものごとに指定します。
これは任意に複雑になる可能性があります。 デモンストレーションとして
Collections#max
であり、(2行に折り返した)ものである。
public static <T extends Object & Comparable<? super T>> T
max(Collection<? extends T> coll)
なぜこんなに複雑なのか? Java Generics FAQで言われている通りです。 バイナリ互換性を維持するために .
変数宣言には使えないようですが、クラスにジェネリック境界をつけるときには使えます。 このように、やりたいことをやるには、いくつかの輪を飛び越えなければならないかもしれません。 でも、できるんです。 こんな感じで、クラスにジェネリック境界を付けて、それから。
class classB { }
interface interfaceC { }
public class MyClass<T extends classB & interfaceC> {
Class<T> variable;
}
を取得します。
variable
という制約があります。 より詳細な情報と例については、3ページの
Java 5.0におけるジェネリックス
. 注
<T extends B & C>
クラス名が最初に来て、インターフェイスがその後に来るようにしなければなりません。 そしてもちろん、クラスは1つだけしかリストアップできません。
関連
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] .lengthが解決できない、またはフィールドでない
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] List<T>をオブジェクトのプロパティでソートする方法
-
[解決済み] Javaで汎用配列を作成する方法は?
-
[解決済み] 汎用型Tのクラスインスタンスを取得する方法を教えてください。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] Java: getInstanceとStaticの比較