ホームページ >Java >&#&チュートリアル >Java で System.console() が時々 Null を返すのはなぜですか? ユーザー入力を確実に取得するにはどうすればよいですか?

Java で System.console() が時々 Null を返すのはなぜですか? ユーザー入力を確実に取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 01:04:23196ブラウズ

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

Java の System.console() を使用したユーザー入力へのアクセス

Java では、System.console() メソッドは、以下と対話する手段を提供します。コンソールを使用してユーザー入力を取得します。ただし、このメソッドを利用しようとすると、null オブジェクトが返されることは珍しくありません。

Null オブジェクトの問題のトラブルシューティング

この問題を解決するには、次のことが重要です。 System.console() メソッドは、特定のコンテキスト (通常は IDE 環境の外) では null を返す場合があることを理解してください。これは、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!");
        }
    }
}

注: 前述のとおり提供されたソリューションでは、IDE 内で System.console() が null を返す場合があります。したがって、IDE 内で作業する場合は、より汎用性の高い入力方法を利用することをお勧めします。

以上がJava で System.console() が時々 Null を返すのはなぜですか? ユーザー入力を確実に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。