「初期化されていない可能性があります」エラーが初期化されていない可能性がある変数を、どのパスで確認できるのでしょうか?好ましくは、JavaにネイティブまたはIntellijに組み込まれていますか?Java - これを処理する方法は "初期化されていない可能性があります"というエラー?
EDIT:最小の障害の例に自分のコードを減らすために管理
class MyFailure{
public static void main (String[] args) throws java.lang.Exception{
String test;
boolean abort = false;
while(!abort){
if(false){
abort = true;
continue;
}
test = "stupid";
if(test.equals("stupid")) break;
}
if(!abort){
System.out.println(test);
}
}
}
Main.java:21: error: variable test might not have been initialized
緩衝値が一定の条件を満たし、if(false)
になるまでwhileループは、サーバソケットから読み出し仮定実際にクライアントが接続を終了したかどうかをチェックします。どうすればこの問題を処理することを提案しますか?これはあなたの現実のコードに作動しているかどうか
public static void main (String[] args) throws java.lang.Exception{
boolean abort = false;
while (!abort){
if (false) {
abort = true;
continue;
}
String test = "stupid";
if (test.equals("stupid")) {
System.out.println(test);
break;
}
}
}
:Javaはあまりにもそれが値を持って見ることができますループ内で変数を使用する:あなたの問題のコードはかなり簡単な解決策があるのために
あなたの目でパスが見つからない場合は、コードが複雑すぎます。それを示す。 – Kayaman
私の経験上、決定の仕方はあまりにもスマートではありません(問題を複雑にしすぎてはいけません)。たとえば、メソッド内で互いに後に2つのif-else構文があり、最初の特定のパスに2番目のパスが含まれていることがわかっている場合、Javaはそれを理解しません。したがって、変数が最初のパスから1つのパスでのみ初期化された場合、Javaでは2番目のパスのいずれのパスでも値を使用させません。 –
考えられるトリックは、宣言の変数にナンセンス値を割り当てることです(intの場合は-4736など)。 2つの良い効果があります:Javaは満足しています。プログラミングエラーのためにナンセンス値が使用されるかどうかを確かめることができます。 –