我需要以下方法:
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){//...}
有没有办法做到这一点?
答案 0 :(得分:2)
你的意思是这样吗?
<T extends ClassA> methodA(Class<T> clzz, Consumer<T> consumer) {
//... AKKA message handler
.match(clzz, s -> consumer.accept(s);)
}
(请注意,您可以使用Consumer<? super T>
使其更加灵活)