0
私はJavaジェネリックスの新人ですが、ジェネリッククラスのメンバーにアクセスすることができれば、いくつかの方法で多くのタスクを解決できます。出発点は、私はすべて同様の処理が必要ないくつかのタイプのデータを持っているということです。ジェネリック型のクラスのクラスメンバーにアクセスするには?
次のおもちゃの例のようにジェネリック型のメンバーにアクセスする方法はありますか?
public void <O> someMethod(AbstractData d, Set<String> filter) {
List<O> list = d.getKeys();
for (O o : list) {
if(filter.contains(o.id)) { // < cannot access member of generic type O
doSomeWork(o);
}
}
}
o.idのアクセス以外はすべて動作するようです。
あなたは、 'public void someMethod(...' –
litelite
)のようなものであることをjavaに伝える必要があります。もちろん、未加工の型やチェックされていないキャストを扱わないためには、 AbstractDataが提供しているインタフェースを調べるために 'getKeys()'は 'Listも返すべきです。 –
GhostCat