Запитання з тегом «final»

22
Який сенс "заключного класу" на Java?
Я читаю книгу про Java, і вона говорить про те, що ви можете оголосити весь клас як final. Я нічого не можу придумати, де б це використав. Я просто новачок у програмуванні, і мені цікаво, чи програмісти насправді використовують це у своїх програмах . Якщо вони це роблять, коли вони …
569 java  final 

18
Як працює "остаточне" ключове слово в 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
Чи покращення ефективності використання кінцевого ключового слова на Java?
У Java ми бачимо багато місць, де finalможна використовувати ключове слово, але його використання є рідкісним. Наприклад: String str = "abc"; System.out.println(str); У вищенаведеному випадку це strможе бути, finalале це, як правило, припинено. Коли метод ніколи не буде перекрито, ми можемо використовувати остаточне ключове слово. Аналогічно у випадку класу, який …
347 java  final 


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

11
Чи повинен бути оголошений "статичний кінцевий реєстратор" у верхньому випадку?
У 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"; final String …
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) { ... } } У наведеному вище …
189 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якомога більше, і мені цікаво, наскільки це важливо. Це в основному в контексті параметрів методу та локальних змінних, а не остаточних методів чи класів. Для констант це має очевидний сенс. З одного боку, компілятор може зробити деякі оптимізації, і це …
171 java  final 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.