3

私は、Java でのジェネリクスの有界定量化に関するこれらの (同様の) 問題に苦しんでいます。

  1. MyType という名前のジェネリック クラスのヘッダーを記述します。クラスには 1 つの型パラメーターが必要です。型パラメーターの上限は String クラスにする必要があります。

  2. MyType という名前のジェネリック クラスのヘッダーを記述します。クラスには 1 つの型パラメーターが必要です。型パラメーターの下限は Integer クラスにする必要があります。

    public class myType<T extends String>{}
    

    public class myType<T extends Integer>{}
    

これは正しいですか、私はJavaでジェネリックの概念を理解するのに本当に苦労しています

4

1 に答える 1

3

extends上限と下限の両方を定義するために使用しません。

ウィキペディアのJavaのジェネリックに関する記事によると...

タイプワイルドカードの上限を指定するには、 extends キーワードが使用されます...

したがって、上限を定義するには、次を使用しますextends

public class myType<T extends String>{}

繰り返しになりますが、 Wikipedia の Generics in Java の記事によると...

タイプ ワイルドカードの下限クラスを指定するには、super キーワードを使用します。


補遺

この質問を最初にまとめた人は、いくつかのことを整理する必要があると思います。

  • Java にはヘッダー ファイルがありません。ウィキペディアでヘッダー ファイルを調べると、すぐに Java はそれらを使用しないと記載されています
    一部の新しい言語 (Java など) では、ヘッダー ファイルが省略されます...
  • クラスを定義するときに下限を使用することはできません-クラスを定義するときに使用されないワイルドカードでのみ実行できると思います。コードpublic class MyClass<T super Integer> {}は構文エラーを出します:> expected

したがって、全体として、質問はナンセンスです。

于 2012-09-28T23:59:46.847 に答える