java - 如何测试是否设置了变量?

标签 java variables

在 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/

相关文章:

Java 三元运算符优先级?给出不同的输出

java - 文件的每个字节都是由字符集中的字符组成的吗?

sql-server - 使用未在 mssql 中运行的变量选择查询

flutter - dart/flutter中全局变量的访问

java - 如何从 Jmeter 执行 java 类

java - C++中的数组赋值

c++ - 如何在#import c++ 命令中使用环境变量?

vba - 使用 Long 对变量行求和 VBA

c - 变量神秘地变化

java - 查找计算机中运行的应用程序