我有一个 Enum 和一个EnumMap<Parameters, Byte>
.
我将地图放入一个类中以隐藏“字节”值。所以我有一个set(Parameter, int)
andset(Parameter, boolean)
方法。
public enum Parameter {
BLAH
}
public class Parameters {
private final Map<Parameter, Byte> parameters = new EnumMap<>(Parameter.class);
public byte set(Parameter parameter, boolean set) {
return this.parameters.put(parameter, (byte) (set ? 0x01 : 0x00));
}
public byte set(Parameter parameter, int value) {
return this.parameters.put(parameter, (byte) value);
}
}
当我调用我的任何方法时,NPW 会提出指向put
! 如果我parameters
公开并直接调用该方法,它就可以工作。
final Parameters parameters = new Parameters();
//parameters.parameters.put(Parameter.BLAH, (byte) 0x00);
parameters.set(Parameter.BLAH, false); // NPE
任何人都可以向我解释我的行为吗?