假设我有这样的数据结构:
Map<DataType, Object> myMapLikeObject;
public enum DataType {
TRANSPARENT, PASSABLE, PASSAGE_COST;
}
我想要实现的是将每个枚举常量与这样的数据类型相关联:
public enum DataType {
TRANSPARENT(Boolean.class),
PASSABLE(Boolean.class),
PASSAGE_COST(Integer.class);
}
因此,如果我尝试myMap.put(DataType.TRANSPARENT, "someStuff");
验证输入并抛出异常,因为它不是Boolean
. 到目前为止,这有效,但会导致运行时错误。
如何编写会导致编译时错误的代码,调用如下:
myMap.put(DataType.TRANSPARENT, "someStuff");
?