无法创建类型为Map.Entry的通用类

时间:2019-01-23 10:03:03

标签: java generics

我有一个地图,我想制作一个Collector实现,该实现将从地图中获取一个条目集,并在另一个自定义POJO中设置键/值。我认为,简单的方法是创建类型为Map.Entry的泛型类,但这不能编译。我怎样才能做到这一点?

我可以用另一种方式重新思考和设计解决方案,但是我想了解如何使类型的泛型类成为另一个类的内部接口,例如本示例。

public class TestCollectorImpl<Map.Entry> implements Collector<Map.Entry, CustomDataType, CustomDataType>{}

好像我无法在.中使用<>,并且无法编译。

1 个答案:

答案 0 :(得分:2)

我想这就是你想要的:

public class TestCollectorImpl<K, V> implements Collector<Map.Entry<K, V>, Foo, Bar>

请记住,TestCollectorImpl<Map.Entry>试图定义名称为Map.Entry new 泛型类型参数(由于点的原因,该标识符无效)。您还在此处Map.Entry中使用Collector<Map.Entry ...中的raw type。您不想做任何一个。

您要做的是传递两个通用类型参数,以用作键的类型和条目的值。