Wpis z mikrobloga

Która opcja powinna zostać wybrana i dlaczego? Która jest bardziej optymalna do kompilacji?
Założenie, że i jest stałe bo przy zmiennym to raczej nie ma dyskusji nad tematem.

final int i = 10;
if (i == 10) {
System.out.println("Your number is " + i);

};

albo

final int i = 10;
if (i == 10) {
System.out.println("Your number is 10");

}

jeżeli i będzie stałe

#java #naukaprogramowania
  • 15
@pottymouth: jeśli chcesz poznać odpowiedź, to zbuduj jedno i drugie, i po dekompilacji albo jeśli wolisz w bytecodzie ( ͡° ͜ʖ ͡°) zobacz czym się różnią
możesz potem opowiedzieć co zobaczyłeś :)
@ppawel: @CichySzelestOka: @pottymouth: no ja bym powiedział że tylko pierwsza opcja, bo mniej zmian w kodzie musisz zrobić jeśli coś kiedyś będziesz edytował.
Tylko trudno po tym kodzie coś stwierdzić bo jest zwyczajnie bez sensu :D

Np przydatność bardziej widać na czymś takim:

private static final int VALID_INT = 10; // nazwa oczywiście może być sensowniejsza.\
// w jakiejś metodzie
int i = ... // int pobrany z innego
@GotoFinal: kod jest oczywiście wyabstrahowany i nie ma żadnego odniesienie bezpośredniego do rzeczywistości. Ale pojawiają się czasem skomplikowane instrukcje gdzie mamy np. do wyświetlenia stałą. I pytanie powstaje czy lepiej użyć konkatencji czy po prostu stałą wklepać do Stringa.
@Eoghan: @pull-ups:

@CichySzelestOka: śmieszek ( )
@pottymouth: no jeśli masz jakiś sensowny kod, to oczywiście powinieneś wyświetlać stałą (w sensie konkatenacja) z powodu tego, który opisał @GotoFinal:
to jest ten sam przypadek dlaczego zapisywać for(int i=0; i<tab.length; i++) zamiast for(int i=0; i<10; i++)
@Eoghan: ale wielkość tablicy może się zmienić a jeżeli stałą jest np. liczba planet w układzie słonecznym? Taki pewniak, który na pewno się nie zmieni a jako wartość jest wykorzystywany w obliczeniach.