Blog

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Minden programozási nyelven vannak olyan trükkök, amelyek a nyelv határait feszegetik, vagyis teljesen legális nyelvi eszközökkel érnek el meglepő viselkedést. Ilyen lehet egy olyan rövid program, amely kiírja a klasszikus "Hello, World!" szöveget, de nincs benne main metódus, ahol ezt megtennénk. Mégis lehetséges... A megoldás egyszerű, a ritkán használt statikus inicializátor blokkba kell tennünk a "Hello, World!" kiírást. Ez a blokk akkor hajtódik végre egyszer, amikor az osztályt a ClassLoader betölti, olyan, mint egy konstruktor: szokták statikus konstruktornak is hívni. Ez a blokk még azelőtt hívódik meg, mielőtt a VM meghívná a main metódust, ezért - megelőzve a VM hibaüzenetét a main metódus hiányára - a statikus blokk végén ki is lépünk:

Code Block
languagejava
titleStaticTest.java
linenumberstrue
public class StaticTest
{
  static
  {
    System.out.println("Hello, World!");
    System.exit(0);
  }
}

Ha lefordítjuk és futtatjuk, akkor az eredmény egy "Hello, World!" felirat a képernyőn... :)