У меня есть три постоянных поплавка, значениям которых я хочу назначить в конструкторе класса.Инициализация необходима для публичного статического окончательного, но не для публичного финала
Я объявляю все три константы перед конструктором. В качестве эксперимента, я установить различные модификаторы друг:
public static float defaultdim;
public static final float maxdim;
public final float mindim;
Мой IDE, Eclipse, обнаруживает ошибку во второй константы, maxdim, а именно:
заготовки последнее поле maxdim возможно, не было инициализируется
озадачивает меня не то, почему появляется ошибка, но почему ошибка не появляется в случае mindim, который также является окончательным, учитывая сообщение об ошибке связано с тем, что переменная является окончательным. Другими словами, ошибка возникает из-за того, что окончательная переменная не инициализируется во время объявления. Обе переменные являются окончательными, и оба они не инициализируются, но ошибка появляется только в одном случае.
Эти две переменные отличаются модификатором static, что указывает на то, что это послужило бы причиной ошибки. Однако я не понимаю, почему это было бы так, поскольку в случае defaultdim не появляется ошибка, которая является только статической, а не окончательной, и сама ошибка не относится к модификатору static. Может ли кто-нибудь объяснить причину этого мне?
Можете ли вы показать код в конструкторах этого класса? – Nayuki
Ты меня обманываешь? 'static final' var должен иметь начальное значение с его объявлением, поэтому вы получите эту ошибку. –
«У меня есть три постоянных поплавка, значения которых я хочу назначить в конструкторе класса». Это противоречие. Вы знаете, что такое постоянная? – xehpuk