鉴于以下示例:
public class Main {
public static void main(String[] args) {
System.out.println(1234);
System.out.println(01234);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
1234
668
Run Code Online (Sandbox Code Playgroud)
为什么?
我从XML文件导入数据以在内部使用它.现在有一个uint值,这是(根据XSD)不需要的.现在问题是:如何在我的类中映射此行为(不清楚,如果Value存在与否,但我需要在运行时知道)
基本上我看到3个解决方案:
解决方案1:使用我们知道它们无效的值将值标记为"未设置":
public class Solution1 {
private int optionalVal;
public boolean isSetOptionalVal() {
return (optionalVal>=0);
}
public void setOptionalVal(int val) {
optionalVal = val;
}
public void unSetOptionalVal() {
optionalVal = -1;
}
public int optionalVal() {
if(isSetOptionalVal()) {
return optionalVal;
} else {
return -1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案2:使用盒装类并null在值为"未设置"时将其设置为:
public class Solution2 {
private Integer optionalVal;
public boolean isSetOptionalVal() {
return (optionalVal!=null);
}
public void setOptionalVal(int val) {
optionalVal = val;
}
public void unSetOptionalVal() { …Run Code Online (Sandbox Code Playgroud)