类型参数可以是Java中的参考?

问题描述 投票:0回答:1

我需要一个像下面的方法:

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){//...}

有没有办法做到这一点?

java generics type-parameter
1个回答
2
投票

你的意思是这样的?

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

(请注意,你可以把它更加灵活的使用Consumer<? super T>

© www.soinside.com 2019 - 2024. All rights reserved.