类型参数可以作为Java中的引用吗?

时间:2019-02-03 19:17:32

标签: java generics type-parameter

我需要以下方法:

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 :(得分:2)

你的意思是这样吗?

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

(请注意,您可以使用Consumer<? super T>使其更加灵活)