#java #programowanie #gotojava
Po 1: wyniki zagadki ( https://www.wykop.pl/wpis/30701045/java-naukaprogramowania-gotojava-no-wlasnie-musze-/ ), w momencie pisania tego posta:
true - 9 głosów
false - 17 głosów
błąd kompilacji - 27 głosów
błąd w runtime - 6 głosów
A poprawna odpowiedz to... błąd w runtime! O dziwo javac pozwala na taki kod i wywala
Po 2: Nowy wpis na blogu Dość mały, ale może to dobry początek przywracania aktywności na blogu.
https://blog.gotofinal.com/java/breakingjava/2018/03/17/everything-is-a-duck.html
Uznałem ze nie
Po 1: wyniki zagadki ( https://www.wykop.pl/wpis/30701045/java-naukaprogramowania-gotojava-no-wlasnie-musze-/ ), w momencie pisania tego posta:
true - 9 głosów
false - 17 głosów
błąd kompilacji - 27 głosów
błąd w runtime - 6 głosów
A poprawna odpowiedz to... błąd w runtime! O dziwo javac pozwala na taki kod i wywala
java.lang.IllegalAccessError
Po 2: Nowy wpis na blogu Dość mały, ale może to dobry początek przywracania aktywności na blogu.
https://blog.gotofinal.com/java/breakingjava/2018/03/17/everything-is-a-duck.html
Uznałem ze nie
Zagadka ( ͡º ͜ʖ͡º)
Ale bez ankiety, wolę zobaczyć tutaj dyskusję i argumenty niż nudne odpowiedzi:
Consumer consumerRef = System.out::println;
Consumer consumer = x -> System.out.println(x);
Jaka jest różnica między tymi dwoma kodami? Czy może są równoważne?
Więc zostawiłem lambdę i w sumie nie drązyłem tematu dalej. Ale nie wiem @GotoFinal czy dokładnie o to Ci chodziło, czy może miałeś coś innego na myśli.
W tym wypadku te kody są inne, bo
Consumer consumerRef = System.out::println;
To syntax sugar dla takiego kodu:
PrintStream out = System.out;
Objects.requireNonNull(out);
Consumer consumerRefMan = x -> out.println(x);
Co oznacza że jeśli użyjemy metody System.setOut po stworzeniu tych funkcji, to ta używająca method reference dalej