Компилятор Java не позволит вам определять переменные и использовать их до того, как им будет присвоено значение, поэтому проблема не существует в той же форме, как в php.
EDIT
Если в вашем случае компилятор не остановил вас (потому что это, например, переменная экземпляра), лучшее решение, вероятно, состоит в том, чтобы инициализировать переменную к какому-то «специальному» значению, как предложено в 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;
}
ИлиВы можете получить доступ к 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
против Integer
) не был затронут.