Java のスキャナーと System.in を使用したリソース リークの処理

Susan Sarandon
リリース: 2024-10-19 06:11:30
オリジナル
218 人が閲覧しました

Handling Resource Leaks with Scanner and System.in in Java

Java のスキャナーを使用したことがある場合は、リソースのリークを避けるためにスキャナーを閉じることが重要であることをご存知でしょう (特にファイルから読み取る場合)。しかし、System.in に関しては異なります。

System.in を閉じるべきですか?

通常、System.in を閉じたくないのは、それ以降の入力が停止されるためです。プログラムの他の部分でまだユーザー入力が必要な場合、これにより問題が発生する可能性があります。

安全な解決策: try-with-resources

Java の try-with-resources を使用すると、それが簡単になります。 System.in を閉じずにスキャナーが自動的に閉じられるため、ユーザー入力を安全に読み取ることができます。

IDE がリソース リークについて警告するのはなぜですか?

一部の IDE (Eclipse や IntelliJ など) は、Scanner で潜在的なリソース リークにフラグを立て、すべてのインスタンスを同じように扱うことがあります。これは、特に System.in を使用する場合に誤解を招く可能性がありますが、これらの警告は無視しても問題ありません。

ベストプラクティス:

try-with-resources を使用して、System.in を開いたままスキャナが適切に閉じられていることを確認します。
System.in を手動で閉じないでください。 JVM に処理させます。

コード例:

try (Scanner objName = new Scanner(System.in)) {
    System.out.println("What's your name?");
    String userName = objName.nextLine();

    System.out.println("Hello, " + userName + "!");
}
ログイン後にコピー

以上がJava のスキャナーと System.in を使用したリソース リークの処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!