不带泛型的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,但逻辑仍然相同
中声明的名称<