Может ли параметр типа быть ссылкой в ​​Java? - PullRequest
0 голосов
/ 03 февраля 2019

Мне нужен метод, подобный следующему:

methodA(Class<? extends ClassA> clzz, Consumer<? extends ClassA> consumer) {
   //... AKKA message handler
   .match(clzz, s -> consumer.accept(s);)
}

Это не скомпилируется, и я знаю, почему то, что я хочу, выглядит примерно так:

TypeParameter T = ? extends ClassA;
methodA(Class<T> clzz, Consumer<T> consumer){//...}

Есть ли способсделать это?

1 Ответ

0 голосов
/ 03 февраля 2019

Вы имеете в виду что-то подобное?

<T extends ClassA> methodA(Class<T> clzz, Consumer<T> consumer) {
   //... AKKA message handler
   .match(clzz, s -> consumer.accept(s);)
}

(Обратите внимание, что вы можете сделать его более гибким, используя Consumer<? super T>)

...