不带泛型的Java扩展Map.entry()

不带泛型的Java扩展Map.entry(),java,generics,interface,hashmap,Java,Generics,Interface,Hashmap,我想做的是最终能够运行这个: HashMap<FooClass> foo; 这会导致列表出现问题 如果我简化它并尝试 public class FooClass<String, Integer> extends Map.Entry<String, Integer> 公共类FooClass扩展了Map.Entry 然后我在这里没有得到预期的接口错误 Map.Entry<String, Integer> Map.Entry 因此,如果我将其

我想做的是最终能够运行这个:

HashMap<FooClass> foo;
这会导致列表出现问题

如果我简化它并尝试

public class FooClass<String, Integer> extends Map.Entry<String, Integer> 
公共类FooClass扩展了Map.Entry
然后我在这里没有得到预期的接口错误

Map.Entry<String, Integer>
Map.Entry

因此,如果我将其更改为
Map.Entry
,则它需要一个标识符。扩展
Map.entry
的正确方法是什么?

没有尝试编译这些,但在这些情况下,通常不会在声明的类上使用类型参数:

public class FooClass implements Map.Entry<String, List<String>> 
public类FooClass实现Map.Entry

public类FooMap扩展了HashMap

尚未尝试编译这些,但在这些情况下,通常不会在声明的类上使用类型参数:

public class FooClass implements Map.Entry<String, List<String>> 
public类FooClass实现Map.Entry

public类FooMap扩展了HashMap

尚未尝试编译这些,但在这些情况下,通常不会在声明的类上使用类型参数:

public class FooClass implements Map.Entry<String, List<String>> 
public类FooClass实现Map.Entry

public类FooMap扩展了HashMap

尚未尝试编译这些,但在这些情况下,通常不会在声明的类上使用类型参数:

public class FooClass implements Map.Entry<String, List<String>> 
public类FooClass实现Map.Entry

public类FooMap扩展了HashMap

无法为任何单个参数
Foo
编写
HashMap
HashMap
需要两个类型参数;乱搞
Map。条目
不会改变这一点。

您无法为任何单个参数
Foo
编写
HashMap
HashMap
需要两个类型参数;乱搞
Map。条目
不会改变这一点。

您无法为任何单个参数
Foo
编写
HashMap
HashMap
需要两个类型参数;乱搞
Map。条目
不会改变这一点。

您无法为任何单个参数
Foo
编写
HashMap
HashMap
需要两个类型参数;在地图上乱搞。输入不会改变这一点。

我在猜测你想做什么,因为我不清楚你的问题。但是,如果您试图为不公开泛型参数的特定目的提供一个HashMap实现,那么可以通过扩展参数化HashMap来实现

例如,让我们假设您想要做的是将FooClass实例中的name属性映射到实例本身。您可以像这样扩展HashMap:

public class FooClassMap extends HashMap<String, FooClass> { }
FooClassMap fooClassMap = new FooClassMap();
并像这样使用它(假设它有一个在构造函数中初始化的name属性):


我希望这就是你想要的,如果不是的话,很抱歉。

我在猜测你想做什么,因为我不清楚你的问题。但是,如果您试图为不公开泛型参数的特定目的提供一个HashMap实现,那么可以通过扩展参数化HashMap来实现

例如,让我们假设您想要做的是将FooClass实例中的name属性映射到实例本身。您可以像这样扩展HashMap:

public class FooClassMap extends HashMap<String, FooClass> { }
FooClassMap fooClassMap = new FooClassMap();
并像这样使用它(假设它有一个在构造函数中初始化的name属性):


我希望这就是你想要的,如果不是的话,很抱歉。

我在猜测你想做什么,因为我不清楚你的问题。但是,如果您试图为不公开泛型参数的特定目的提供一个HashMap实现,那么可以通过扩展参数化HashMap来实现

例如,让我们假设您想要做的是将FooClass实例中的name属性映射到实例本身。您可以像这样扩展HashMap:

public class FooClassMap extends HashMap<String, FooClass> { }
FooClassMap fooClassMap = new FooClassMap();
并像这样使用它(假设它有一个在构造函数中初始化的name属性):


我希望这就是你想要的,如果不是的话,很抱歉。

我在猜测你想做什么,因为我不清楚你的问题。但是,如果您试图为不公开泛型参数的特定目的提供一个HashMap实现,那么可以通过扩展参数化HashMap来实现

例如,让我们假设您想要做的是将FooClass实例中的name属性映射到实例本身。您可以像这样扩展HashMap:

public class FooClassMap extends HashMap<String, FooClass> { }
FooClassMap fooClassMap = new FooClassMap();
并像这样使用它(假设它有一个在构造函数中初始化的name属性):


我希望这就是您要寻找的,如果不是,很抱歉。

class
之间声明的名称定义了新的类型变量。它们不引用现有类型。为什么要尝试扩展
Map.Entry
?如果需要,只需创建一个
FooClass
并重写
hashCode()
。一个类不能“扩展”。@ChrisMartin对此表示抱歉,请将extends替换为implements,但逻辑仍然相同
类FooClass
之间声明的名称定义新类型变量。它们不引用现有类型。为什么要尝试扩展
Map.Entry
?如果需要,只需创建一个
FooClass
并重写
hashCode()
。一个类不能“扩展”。@ChrisMartin对此表示抱歉,请将extends替换为implements,但逻辑仍然相同
类FooClass
之间声明的名称定义新类型变量。它们不引用现有类型。为什么要尝试扩展
Map.Entry
?如果需要,只需创建一个
FooClass
并重写
hashCode()
。一个类不能“扩展”。@ChrisMartin很抱歉,用实现替换extends,但逻辑仍然相同
中声明的名称<