要将map定义为常量对象,可以使用Java中的Collections.unmodifiableMap()
方法来实现。该方法返回一个不可修改的Map对象,即常量对象。
下面是一个示例代码:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class ConstantMapExample {
private static final Map<String, Integer> CONSTANT_MAP;
static {
Map<String, Integer> tempMap = new HashMap<>();
tempMap.put("key1", 1);
tempMap.put("key2", 2);
tempMap.put("key3", 3);
CONSTANT_MAP = Collections.unmodifiableMap(tempMap);
}
public static void main(String[] args) {
// 尝试修改常量Map会抛出UnsupportedOperationException异常
// CONSTANT_MAP.put("key4", 4);
// 访问常量Map
System.out.println(CONSTANT_MAP.get("key1")); // 输出: 1
System.out.println(CONSTANT_MAP.get("key2")); // 输出: 2
System.out.println(CONSTANT_MAP.get("key3")); // 输出: 3
}
}
在上述示例中,我们使用静态代码块来初始化一个临时的HashMap,并将其传递给Collections.unmodifiableMap()
方法来创建一个不可修改的常量Map对象。最后,将该常量Map赋值给CONSTANT_MAP
变量。
通过这种方式,我们可以确保CONSTANT_MAP
是一个常量对象,不可被修改。如果尝试修改该Map,会抛出UnsupportedOperationException
异常。
这种方式适用于需要在多个方法中共享同一个不可修改的Map对象的场景,避免了在每个方法中重复创建Map的开销。
领取专属 10元无门槛券
手把手带您无忧上云