Wynika to z faktu, że operator potrójny w języku Java przyjmuje postać expression ? expression : expression
, a użytkownik wydaje oświadczenie jako ostatnią część. To nie ma sensu, ponieważ instrukcja nie daje wartości, a wyrażenia to robią. Co to jest Java, gdy robi się to, gdy warunek jest fałszywy i próbuje podać drugą wartość? Nie ma żadnej wartości.
Operator trójskładnikowy umożliwia szybkie dokonanie wyboru między dwiema zmiennymi bez użycia pełnego oświadczenia if
- to nie jest to, co próbujesz zrobić, więc nie używaj go, najlepszym rozwiązaniem jest po prostu :
public static AppConfig getInstance() {
if (mConfig != null) {
return mConfig;
} else {
throw new RuntimeException("error");
}
}
operator trójargumentowy nie jest przeznaczony do wywarcia skutków ubocznych - Choć może to być wykonane do ich produkcji, ludzie czytać nie będzie oczekiwać, że tak jest znacznie lepiej użyć prawdziwego if
oświadczenie, aby To jasne.
ponieważ 'throw' nie jest wyrazem –
"return (throw new RuntimeException (" Error")) ; " - nie można zwrócić rzut nowego wyjątku() –
Należy zwrócić uwagę na wzór obiektu zerowego. –