sai*_*oms 2 java enums enum-map
我尝试使用一个简单的java EnumMap来存储道路类型到默认速度的映射.但是我立即遇到了以下问题:
我创建了一个简单的枚举如下:
public enum RoadCategory {
AUTOBAHN("Autobahn", 0),
BUNDESSTR("Bundesstrasse", 1),
OTHER("other", -1);
private String name;
private int code;
private RoadCategory(String name, int code){
this.name = name;
this.code = code;
}
}
Run Code Online (Sandbox Code Playgroud)
接下来,我创建了一个小类,试图将此枚举用作枚举映射的键:
import java.util.EnumMap;
import java.util.Map;
public class VehicleConfig {
public static void main(String[] args) throws Exception {
VehicleConfig v = new VehicleConfig();
v.addSpeedMapping(RoadCategory.AUTOBAHN, 80.0);
}
private Map<RoadCategory,Double> speedMap;
public VehicleConfig(){
this.speedMap = new EnumMap<RoadCategory, Double>(RoadCategory.class);
}
public double addSpeedMapping(RoadCategory category, double speed) throws Exception{
if(speedMap == null) throw new Exception("speedmap NULL");
if(category == null) throw new Exception("category NULL");
return this.speedMap.put(category, speed); // this is line 20
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,addSpeedMapping抛出一条NullPointerException线回归this.speedMap.put(category, speed);.因此我添加了条件,但这在这里没有帮助.
Exception in thread "main" java.lang.NullPointerException
at hpi.bpt.traffic.VehicleConfig.addSpeedMapping(VehicleConfig.java:20)
at hpi.bpt.traffic.VehicleConfig.main(VehicleConfig.java:8)
Run Code Online (Sandbox Code Playgroud)
我不知道我在这里做错了什么.有谁知道如何修复/工作?
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |