Wpis z mikrobloga

Jaki jest wynik próby kompilacji i wykonania tego programu:

public class Main {

public static void main(String... args) {
Main m = null;
m.printBanner();
m.printBanner("dsada");
}

private static void printBanner(Object... message) {
System.out.println(message[0]);
}
}

Plusowani zostaną później zawołani do wyjaśnienia.

#interfacesmieci
#java #naukaprogramowania

Jaki jest wynik próby kompilacji i uruchomienia?

  • Błąd kompilacji 25.5% (42)
  • Błąd runtime Null Pointer Exception 36.4% (60)
  • Inny błąd runtime 21.8% (36)
  • Wyświetlenie dsada 12.1% (20)
  • Brak żadnego outputu 4.2% (7)

Oddanych głosów: 165

  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Najbardziej oczywista i najpopularniejsza opinia jest NPE. Jednak tutaj nie bedzie NPE poniewaz media printBanner(Object... message) jest statyczna. Statyczne metody w Javie beda automatycznie przeknowertowane do formatu invokestatic Main.printBanner. Dla poprawnosci kodu powinno to byc zapisane:

Main m = null;

Main.printBanner();

Main.printBanner("dsada");
interface - Najbardziej oczywista i najpopularniejsza opinia jest NPE. Jednak tutaj n...

źródło: comment_0zsrKXYV0neQfMGkvDJgjprUm6vrSOMd.jpg

Pobierz
  • Odpowiedz
@interface: miałem kiedyś coś podobnego na rekrutacji :) czemu uważasz, że takie coś to nadużycie? Czemu piszesz, że Object[] jest klasa anonimowa?
  • Odpowiedz
trzeba by wrzucić do sonara


@mour: sonarqube wylapie ze to wywolanie powinno byc napisane Main.printBanner

miałem kiedyś coś podobnego na rekrutacji :) czemu uważasz, że takie coś to
  • Odpowiedz