有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java字典作为类的不同实例的参考

我正试图找到以下问题的解决方案: 我有一个类Alert,它被创建了很多次,它的实例显示为:List<Alert>类型的字段。 Alert的一个字段假设使用一个预定义字典的映射(该项从不更改)。 我如何配置map,这样就不必在每次创建Alert时都创建它

意思是:

public class Alerts {
    private List<Alert> list;
    .
    .
    .
    public Alerts() {
        list = new ArrayList<Alert>();
        for (...) {
            Alert alert = new Alert();
            list.add(alert);
        }
    }
}

public class Alert() {
    private String str = "";
    .
    .
    .
    public Alert() {
        for (int i = 0; i < map.size; i++) {
            str += map.get(i); //map is visible and never changes for any                     
                               //instance
        }
    }
}

共 (2) 个答案

  1. # 1 楼答案

    如果类的所有实例都将使用相同的数据,则应该使用静态字段。此外,您还可以使地图不可修改(只是为了确保您或其他人不会把它弄糟)

    private static Map<String, String> map = new HashMap<>();
    
    static {
        // Insert your keys and values
        map.put(key, value);
        // Make the map unmodifiable, just in case
        map = Collections.unmodifiableMap(map);
    }
    

    PS:如果你有一个Map<Integer, String>,哪些键是连续的(0,1,2,3,4…)然后考虑一个^ {CD2}},因为列表索引执行与本例中的键相同的目标。

  2. # 2 楼答案

    听起来map应该是类的静态成员。您可以在静态初始值设定项块中初始化它