假设我有一个泛型类,它的泛型仍然是一个泛型类,就像
List<ConsumerRecord<String, SpecificRecord>>
或 List<ConsumerRecord<String, Object>>
我需要编写一个方法签名来接受两者,而不需要二级泛型。
对于一级泛型,
List<? extends T>
,T 是对象,所以 List<?>
就可以了。
但是有两个级别,
List<ConsumerRecord<?, ?>>
无法编译。
我的简单解决方案是通用方法,但是有没有更干净的方法来做到这一点?
protected <T> String printOffsetsForMessages(List<ConsumerRecord<String, T>> records)
您需要另一个级别的扩展:
List<? extends ConsumerRecord<?, ?>>