首頁 >Java >java教程 >為什麼 Java 中 System.console() 有時會傳回 Null,如何可靠地取得使用者輸入?

為什麼 Java 中 System.console() 有時會傳回 Null,如何可靠地取得使用者輸入?

Barbara Streisand
Barbara Streisand原創
2024-12-22 01:04:23120瀏覽

Why Does System.console() Sometimes Return Null in Java, and How Can I Get User Input Reliably?

使用Java 的System.console() 存取使用者輸入

在Java 中,System.console() 方法提供了一種與控制台並取得使用者輸入。然而,在嘗試使用此方法時,遇到傳回空物件的情況並不少見。

解決空物件問題

要解決此問題,至關重要了解System.console() 方法可能在某些上下文中傳回null,通常是在IDE環境之外。發生這種情況是因為控制台並不總是在所有環境中可用,例如在 IDE 中執行程式碼時。

替代輸入法

要克服此限制並獲得使用者有效輸入,請考慮利用替代方法:

  • 直接列印與閱讀:
System.out.print("Enter something:");
String input = System.console().readLine();
  • BufferedReader:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {
    public static void main(String[] args) throws IOException { 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter String");
        String s = br.readLine();
        System.out.print("Enter Integer:");
        try {
            int i = Integer.parseInt(br.readLine());
        } catch(NumberFormatException nfe) {
            System.err.println("Invalid Format!");
        }
    }
}

注意:如上所述在提供的解決方案中,System.console()可能會在 IDE 中傳回 null。因此,建議在 IDE 中使用更通用的輸入法。

以上是為什麼 Java 中 System.console() 有時會傳回 Null,如何可靠地取得使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn