在 Java 中不使用 main() 方法在控制台上列印訊息
一、簡介
Java程式的執行是從main()
方法開始的。但是,在某些情況下,我們可能希望在不使用main()
方法的情況下顯示訊息。
在本教程中,我們將深入研究完成此任務的一些方法。
2. 使用靜態區塊
當類別載入到記憶體時,靜態區塊就會被執行,這樣就可以在沒有main()
方法的情況下顯示訊息。
讓我們來看一個例子:
public final class PrintMessageWithoutMainMethod {
static {
System.out.println("Hello World!!");
System.exit(0);
}
}
在本例中,訊息“Hello World!!”無論main()
方法是否為空或不存在,都會在類別載入期間出現。此外, System.exit(0)
方法會立即結束程式。
3. 使用嵌套類
要在沒有 main() 方法的情況下列印訊息,我們也可以使用巢狀類別。讓我們看看如何使用這種方法:
public final class PrintMessageWithoutMainMethod {
static {
NestedClass.printMessage();
}
static class NestedClass {
static void printMessage() {
System.out.println("Message from nested class");
}
}
}
在這種情況下,外部類別中的靜態區塊會從巢狀類別內部呼叫靜態方法並輸出一則訊息。
4. 在類別初始化期間執行程式碼
在某些情況下,有必要在類別的初始化過程中執行某些方法。請注意,當配置或執行只需執行一次的初始化任務時,此方法會很有幫助。
給定的程式碼顯示了載入類別時呼叫getStatus()
方法:
public final class PrintMessageWithoutMainMethod {
private static final int STATUS = getStatus();
private static int getStatus() {
System.out.println("Hello World!!");
System.exit(0);
return 0;
}
}
在本例中,我們在類別載入過程中呼叫getStatus()
方法,它會列印“Hello World!!”到控制台。
使用此方法時應小心,因為它會強制終止 Java 虛擬機器 (JVM) 的執行。因此,如果需要徹底關閉,請尋找替代方案。
5. 使用 JUnit 測試
除了上述方法之外,我們還可以使用 JUnit 測試將訊息列印到控制台,如下所示:
public class PrintMessageWithoutMainUnitTest {
@Test
public void givenMessage_whenUsingJunitTest_thenPrintMessage() {
System.out.println("Hello World!!");
}
}
在本例中,我們建立一個測試方法作為列印「Hello World!!」的單元測試。到控制台。這不是main()
方法的替代方法,而是一種不同的實作方式,尤其是在測試時。
六,結論
總之,還有其他方法可以在不使用 Java 中的main()
方法的情況下列印訊息。隨後,本教學深入介紹了解決此問題的幾種方法,例如使用靜態區塊、在類別初始化期間執行程式碼以及使用巢狀類別。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。