Похоже, проблема с областью.Фрагмент кода, который вы разместили на FORGOT.JAVA, недостаточно для точного определения проблемы.Но вы определяете переменную ki
во фрагменте.Поэтому он не будет доступен вне метода / конструктора, из которого происходит фрагмент кода.
Глядя на второй фрагмент из OPT.JAVA, вы создаете новый FORGOT, а затем ссылаетесь на поле с именем ki.Поэтому для компиляции у вас, вероятно, есть что-то вроде следующего для класса FORGOT:
public class FORGOT {
public String ki;
public FORGOT() {
Random rand=new Random();
int id=rand.nextInt(10000);
System.out.printf("%04d%n",id);
final String ki=Integer.toString(id);
System.out.printf(ki);
}
}
Хотя похоже, что вы устанавливаете ki в случайное число, вы фактически создаете новую переменнуювызывается в области действия конструктора ki и устанавливает его в случайное число.Как только конструктор вернет, эта переменная исчезла, и вы больше не можете ссылаться на нее.
Чтобы установить общедоступную переменную ki, просто удалите бит final String
с того места, где вы установили ki.
то есть
public class FORGOT {
public String ki;
public FORGOT() {
Random rand=new Random();
int id=rand.nextInt(10000);
System.out.printf("%04d%n",id);
ki=Integer.toString(id);
System.out.printf(ki);
}
}