Вопросы с тегом «final»

22
Какой смысл «финального класса» в Java?
Я читаю книгу о Java, и там говорится, что вы можете объявить весь класс как final. Я не могу думать ни о чем, где бы я использовал это. Я просто новичок в программировании, и мне интересно, действительно ли программисты используют это в своих программах . Если они это сделают, то …
569 java  final 

18
Как работает ключевое слово «final» в Java? (Я все еще могу изменить объект.)
В Java мы используем finalключевое слово с переменными, чтобы указать, что его значения не должны изменяться. Но я вижу, что вы можете изменить значение в конструкторе / методах класса. Опять же, если переменная - staticэто ошибка компиляции. Вот код: import java.util.ArrayList; import java.util.List; class Test { private final List foo; …
480 java  final 

11
Изменить частное статическое конечное поле с помощью отражения Java
У меня есть класс с private static finalполем, которое, к сожалению, мне нужно изменить во время выполнения. Используя отражение, я получаю эту ошибку: java.lang.IllegalAccessException: Can not set static final boolean field Есть ли способ изменить значение? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);

12
Почему я должен использовать ключевое слово «final» для параметра метода в Java?
Я не могу понять, где finalключевое слово действительно удобно, когда оно используется в параметрах метода. Если мы исключим использование анонимных классов, читаемость и декларацию намерений, то это кажется мне почти бесполезным. Обеспечение того, что некоторые данные остаются постоянными, не так сильно, как кажется. Если параметр является примитивом, то он не …

14
Разница между окончательным и фактически окончательным
Я играю с лямбдами в Java 8, и я столкнулся с предупреждением local variables referenced from a lambda expression must be final or effectively final. Я знаю, что когда я использую переменные внутри анонимного класса, они должны быть финальными во внешнем классе, но все же - в чем разница между …

13
Улучшает ли использование ключевое слово final в Java?
В Java мы видим много мест, где finalключевое слово можно использовать, но его использование встречается редко. Например: String str = "abc"; System.out.println(str); В приведенном выше случае, strможет быть, finalно это обычно прекращается. Когда метод никогда не будет переопределен, мы можем использовать ключевое слово final. Точно так же в случае класса, …
347 java  final 


20
Невозможно обратиться к неконечной переменной внутри внутреннего класса, определенного в другом методе.
Отредактировано: мне нужно изменить значения нескольких переменных, так как они запускаются несколько раз через таймер. Мне нужно постоянно обновлять значения с каждой итерацией через таймер. Я не могу установить значения final, поскольку это не позволит мне обновить значения, однако я получаю ошибку, которую я описал в начальном вопросе ниже: Я …

11
Должен ли «статический финальный регистратор» быть объявлен в UPPER-CASE?
В Java статические конечные переменные являются константами, и существует соглашение, что они должны быть в верхнем регистре. Тем не менее, я видел, что большинство людей объявляют регистраторы в нижнем регистре, что является нарушением PMD . например: private static final Logger logger = Logger.getLogger(MyClass.class); Просто поиск Google или SO для «статического …

6
Сравнение строк с ==, которые объявлены окончательными в Java
У меня есть простой вопрос о строках в Java. Следующий фрагмент простого кода просто объединяет две строки и затем сравнивает их с ==. String str1="str"; String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); Выражение сравнения concat=="string"возвращается falseкак очевидное (я понимаю разницу между equals()и ==). Когда эти две строки объявлены finalтак, final String str1="str"; …
220 java  string  final 

5
Заключительные аргументы в интерфейсных методах - какой смысл?
В Java совершенно законно определять finalаргументы в интерфейсных методах и не подчиняться таковым в реализующем классе, например: public interface Foo { public void foo(int bar, final int baz); } public class FooImpl implements Foo { @Override public void foo(final int bar, int baz) { ... } } В приведенном выше …
190 java  class  interface  methods  final 

6
Окончательно ли плохо определен?
Сначала загадка: что печатает следующий код? public class RecursiveStatic { public static void main(String[] args) { System.out.println(scale(5)); } private static final long X = scale(10); private static long scale(long value) { return X * value; } } Ответ: 0 Спойлеры ниже. Если вы печатаете Xв масштабе (долго) и переопределяете X …

11
Хорошие причины запретить наследование в Java?
Каковы веские причины для запрета наследования в Java, например, с использованием конечных классов или классов с использованием одного частного конструктора без параметров? Каковы веские причины сделать метод окончательным?
178 java  inheritance  final 


15
Когда следует использовать final для параметров метода и локальных переменных?
Я нашел пару ссылок ( например ), которые предлагают использовать finalкак можно больше, и мне интересно, насколько это важно. Это в основном в контексте параметров методов и локальных переменных, а не конечных методов или классов. Для констант это имеет очевидный смысл. С одной стороны, компилятор может сделать некоторые оптимизации, и …
171 java  final 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.