我需要创建一个扩展java.util.LinkedHashMap的自定义类,并将String作为键,String作为值,并且具有一个no-arg构造函数,该构造函数使用初始值预填充此映射.
我陷入了第一个任务 - 如何以这样一种方式扩展LinkedHashMap,而不是只接受它的通用参数?
我试过这个,(不工作)
import java.util.LinkedHashMap;
@SuppressWarnings("serial")
public class MyMenu<String, String> extends LinkedHashMap<String, String> {
    public MyMenu(){
        this.put("index.jsp", "Home Page");
    }
}
Pau*_*nis 14
所有你需要的是:
import java.util.LinkedHashMap;
@SuppressWarnings("serial")
public class MyMenu extends LinkedHashMap<String, String> {
    public MyMenu(){
        this.put("index.jsp", "Home Page");
    }
}
<String, String>从您的班级名称中删除它将起作用.您正在创建这是扩展一个类LinkedHashMap<String, String>,以便类已经是Map这需要String作为重点,并String作为值.如果你想创建自己的泛型类,那么你必须这样做:
创建一个类,例如:
public class MyMenu<K, V> { ... }
然后扩展该类:
public class SomeMyMenu extends MyMenu<String, String> { ... }
在这种情况下,您必须指定类的键和值,以便SomeMyMenu类使用键和值String.您可以在此处阅读有关泛型的更多信息.
但是更有效的方法来做你想要的是创建一些最终类并在其中声明地图如下:
public static final LinkedHashMap<String, String> MAP = new LinkedHashMap<String, String>() {{
    put("index.jsp", "Home Page");
}};
要从地图中获取值,请使用:
SomeClass.MAP.get("Some Key");
| 归档时间: | 
 | 
| 查看次数: | 23724 次 | 
| 最近记录: |