在 PHP 中,有一个 isset
函数。 java 呢?我想我可以将 == null
与对象一起使用,但是像 int
最佳答案
Java 的编译器不会让您在变量被赋值之前定义和使用它们,因此问题与 php 中存在的形式不同。
编辑
如果在您的情况下编译器没有阻止您(因为这是一个实例变量),最好的解决方案可能是将变量初始化为 Guest11239193 建议的某个“特殊”值。像这样:
int x = 0; // because by convention 0 is a reasonable default here
当然,什么是“安全、合理”的初始化值取决于应用程序。
然后,你可以
if (x == 0) { // only allow setting if x has its initial value
x = somenewvalue;
}
或者您可以通过一个禁止多次更改的 setter 来访问 x(在大多数情况下可能会矫枉过正):
private int x;
private boolean x_was_touched = false;
public void setX (int newXvalue) {
if (!x_was_touched) {
x = newXvalue;
x_was_touched = true;
}
}
public int getX() {
return x;
}
你也可以使用Integer
,int的对象兄弟,可以初始化为null
Integer x = null;
但是,您认为自己需要这些知识这一事实可能会在您的程序中隐藏更深层次的逻辑缺陷,因此我建议您探索一下为什么您想知道原始值(原始值而不是对象)的原因,int
vs Integer
) 没有被触及。
关于java - 如何测试是否设置了变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703622/