3

次のような Swing コンポーネントを拡張するようなクラスがあります。

public class MyCustomClass extends JComboBox

ここでの問題は、コンパイラの警告が表示されることです。

JComboBox は raw タイプです。ジェネリック型 JComboBox への参照はパラメータ化する必要があります

JComboBox をパラメータ化して、ここからさらに拡張されたクラスが任意のタイプのオブジェクトを使用できるようにするかどうかはわかりません。extends JComboBox などにしようとしましたが、うまくいきません。任意の提案をいただければ幸いです。

4

4 に答える 4

6

JComboBox の型パラメーターに制限がない場合は、次のようにできます。

public class MyCustomClass<T> extends JComboBox<T>

構文を正しく覚えていれば。

于 2012-10-05T00:42:13.300 に答える
4

ジェネリックは、モデルにあると予想されるデータのタイプに影響します。これは長期的には優れた機能ですが、短期的には苦痛を伴う可能性があります.

私が考えることができる 2 つのオプションがあります。

まず、カスタムクラスを構築して、ジェネリックが通過できるようにします...

public class MyCustomClass<E> extends JComboBox<E>

次に、Objectコンボ ボックスのデータ型として を渡します。

public class MyCustomClass extends JComboBox<Object>

(または 3 番目に、カスタム コンボ ボックスを、それが作成された目的のために事前定義されたデータ型に制限します)

于 2012-10-05T00:45:26.170 に答える
3

パラメータは、ComboBox に含めるオブジェクトのタイプです。

選択肢は次のとおりです。

A: MyCustomClassは常に同じタイプのオブジェクトを想定しているため、次のようにします。

public class MyCustomClass extends JComboBox<String>

また

B: MyCustomClass動作するクラスのタイプを知るには、ツリーの「十分な深さ」ではありません。そうしたらいい:

public class MyCustomClass<T> extends JComboBox<T>
于 2012-10-05T00:42:42.747 に答える
2

JComboBoxJComboBoxJava 7 ではジェネリック クラスになりました。たとえば、インスタンス内のオブジェクトのタイプをコンパイラに伝える必要があります。したがって、クラスをジェネリックにするか、のタイプを指定できますJComboBox

于 2012-10-05T00:42:35.717 に答える