0

私は大きな問題を抱えています。問題が IDE のせいなのか、Vaadin なのか、それとも本当に間違ったことをしているのかわからないのです。Eclipse を使用しようとすると、いくつかのメソッドが見つかりません (ただし、ドットを追加した後にオブジェクトのメソッドをリストすると、そこに表示されます)

例を挙げることができますが、他にもあります (必要に応じてさらに多くの例を挙げることができます)。

Converter を ComboBox に設定したい。それには 2 つの方法があります。

public void setConverter(java.lang.Class<?> datamodelType)

public void setConverter(Converter<T,?> converter)

2番目のものを使用したいので、これを行います:

myCombobox.setConverter(new Converter<User, Integer>(){

   // Some interface methods

});

しかし、Eclipse はメソッド名を赤で設定し、ホバーすると次のようになります。

The method setConverter(Class<?>) in the type AbstractField<Object> is not applicable for the arguments (new Converter<User,Integer>(){})

他の方法が存在することを知らないようです。クラスを確認すると、Eclipse が最初にリストされているように、メソッドはもちろん存在します。

なぜこれが起こっているのか本当にわかりません。手がかりや考えに感謝します。

どうもありがとうございました

4

1 に答える 1

1

ComboBox伸びるAbstractField<Object>そうTです。ComboBox_Object

ジェネリック型パラメーターはサブクラスで置き換えることができないため (指定されていない限り)、そのメソッドに a を指定する必要がありますConverter<Object, ?>。そうしないと、メソッド シグネチャと一致しません。

myCombobox.setConverter(new Converter<Object, Integer>() {
    // ... cast to `User` if you like
});
于 2013-09-16T18:18:17.997 に答える