前提・実現したいこと
クラス変数で宣言したfinal int x;
があり、それにfile.txt
の一段目の数字を代入しようとしています。ですが、try
の外で代入したxを使用しようとするとエラー(1)が起きます。なので、初期かされていない可能性をつぶそうと今コメントになっている部分を有効にしました。しかし、そうするとエラー(2)が発生してしまします。
直し方を教えてください。
発生している問題・エラーメッセージ
1
1Sample.java:15: エラー: 変数xは初期化されていない可能性があります 2 System.out.println(x); 3 ^ 4エラー1個
2
1Sample.java:14: エラー: 変数xはすでに代入されている可能性があります 2 x=0; 3 ^ 4エラー1個
該当のソースコード
java
1import java.io.*; 2public class Sample{ 3 final int x; 4 public static void main(String[] args){ 5 new Sample(); 6 } 7 Sample(){ 8 try{ 9 x=Integer.parseInt(new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("file.txt"))).readLine()); 10 System.out.println(x); 11 }catch(Exception e){ 12 13 } 14 //x=0; 15 System.out.println(x); 16 } 17}
補足情報(FW/ツールのバージョンなど)
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
回答3件
あなたの回答
tips
プレビュー