D-男:
モデルとして、私はキー(AまたはB)のマップを受け入れるように私のメソッドのパラメータ化をしたいジェネリック医薬品と値を使用すると、後でそれがマップに変換され Map<UUID, Model>
問題は、私は上のエラーを取得することであるentry.getKey().getId()
B / C。私が何であるかを定義していませんか?かぎ。誰かの助けができますか?
public void method(Map<?, Model> map) {
Map<UUID, Model> transformation =
map.entrySet().stream()
.collect(
Collectors.toMap(entry -> entry.getKey().getId(), entry -> entry.getValue()));
}
class S {
protected UUID getId() {
// return UUID
}
}
class A extends S {}
class B extends S {}
class Model {
// bla bla
}
アンディ・ターナー:
場合A
とB
提供し、共通のインタフェースを実装するgetId()
方法を、それとワイルドカードをバインド:
public void method(Map<? extends S, Model> map) {