Pytania otagowane jako final

22
Jaki jest sens „ostatniej klasy” w Javie?
Czytam książkę o Javie i mówi, że możesz zadeklarować całą klasę jako final. Nie mogę wymyślić niczego, gdzie bym tego użył. Jestem nowy w programowaniu i zastanawiam się, czy programiści faktycznie używają tego w swoich programach . Jeśli tak, to kiedy go używają, abym mógł lepiej to zrozumieć i wiedzieć, …
569 java  final 

18
Jak działa słowo kluczowe „końcowe” w Javie? (Nadal mogę modyfikować obiekt).
W Javie używamy finalsłowa kluczowego ze zmiennymi, aby określić, że jego wartości nie będą zmieniane. Ale widzę, że możesz zmienić wartość w konstruktorze / metodach klasy. Ponownie, jeśli zmienna jest, staticto jest to błąd kompilacji. Oto kod: import java.util.ArrayList; import java.util.List; class Test { private final List foo; public Test() …
480 java  final 

11
Zmień prywatne statyczne pole końcowe za pomocą odbicie Java
Mam zajęcia z private static finalpolem, które niestety muszę zmienić w czasie wykonywania. Za pomocą odbicia otrzymuję ten błąd: java.lang.IllegalAccessException: Can not set static final boolean field Czy jest jakiś sposób na zmianę wartości? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);

12
Dlaczego powinienem używać słowa kluczowego „final” w parametrze metody w Javie?
Nie rozumiem, gdzie finalsłowo kluczowe jest naprawdę przydatne, gdy jest używane w parametrach metody. Jeśli wykluczymy korzystanie z anonimowych klas, czytelność i zamierzone deklaracje, wydaje mi się to prawie bezwartościowe. Wymuszanie, że niektóre dane pozostają stałe, nie jest tak silne, jak się wydaje. Jeśli parametr jest prymitywny, nie będzie miał …

13
Różnica między ostatecznym a efektywnym końcowym
Gram z lambdami w Javie 8 i natknąłem się na ostrzeżenie local variables referenced from a lambda expression must be final or effectively final. Wiem, że kiedy używam zmiennych wewnątrz anonimowej klasy, muszą one być ostateczne w klasie zewnętrznej, ale nadal - jaka jest różnica między ostateczną a efektywną ostateczną …

13
Czy użycie końcowego słowa kluczowego w Javie poprawia wydajność?
W Javie widzimy wiele miejsc, w których finalmożna użyć słowa kluczowego, ale jego użycie jest rzadkie. Na przykład: String str = "abc"; System.out.println(str); W powyższym przypadku strmoże być, finalale jest to zwykle pomijane. Gdy metoda nigdy nie zostanie zastąpiona, możemy użyć końcowego słowa kluczowego. Podobnie w przypadku klasy, która nie …
347 java  final 


20
Nie można odwoływać się do nieokreślonej zmiennej w wewnętrznej klasie zdefiniowanej w innej metodzie
Edytowane: Muszę zmienić wartości kilku zmiennych, ponieważ działają one kilkakrotnie przez licznik czasu. Muszę aktualizować wartości przy każdej iteracji za pomocą timera. Nie mogę ustawić wartości na końcowe, ponieważ nie pozwoli mi to zaktualizować wartości, jednak pojawia się błąd, który opisuję w początkowym pytaniu poniżej: Wcześniej napisałem, co jest poniżej: …

11
Czy powinienem zadeklarować „statyczny rejestrator końcowy” w GÓRNEJ PRZYPADKU?
W Javie statyczne zmienne końcowe są stałymi, a konwencja jest taka, że ​​powinny być pisane wielkimi literami. Widziałem jednak, że większość ludzi deklaruje rejestratory małymi literami, co pojawia się jako naruszenie w PMD . na przykład: private static final Logger logger = Logger.getLogger(MyClass.class); Po prostu wyszukaj w Google lub SO …

6
Porównywanie ciągów z ==, które są zadeklarowane jako końcowe w Javie
Mam proste pytanie dotyczące napisów w Javie. Następny segment prostego kodu po prostu łączy dwa ciągi, a następnie porównuje je ==. String str1="str"; String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); Wyrażenie porównania concat=="string"zwraca falsejako oczywiste (rozumiem różnicę między equals()i ==). Gdy te dwa ciągi zostaną zadeklarowane w ten finalsposób, final String str1="str"; …
220 java  string  final 


6
Czy ostateczne jest źle zdefiniowane?
Po pierwsze, układanka: co drukuje następujący kod? 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; } } Odpowiedź: 0 Spojlery poniżej. Jeśli drukujesz Xw skali (długiej) i redefiniujesz X …



15
Kiedy należy używać final dla parametrów metody i zmiennych lokalnych?
Znalazłem kilka odniesień ( na przykład ), które sugerują używanie finaljak największej ilości i zastanawiam się, jakie to ważne. Dzieje się tak głównie w kontekście parametrów metod i zmiennych lokalnych, a nie ostatecznych metod lub klas. W przypadku stałych ma to oczywisty sens. Z jednej strony kompilator może dokonać pewnych …
171 java  final 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.