2016-08-27 5 views
-3

私は次のコードでLocal variable 'answerArray' is redundant警告を取得しています:なぜ、別に `int [] arrayName = {};`を冗長に作成するのですか? (Java)の

int[] answerArray = {answer, fakeFirstAnswer, fakeSecondAnswer}; 
return answerArray; 

詳しい方法:私はexpects ;で以下が、その後、それエラーのようなリファクタリングを試してみた

public int[] answerArray (int answer) { 
    Random randomGenerator = new Random(); 
    int fakeFirstAnswer = randomGenerator.nextInt(10); 
    int fakeSecondAnswer = randomGenerator.nextInt(10); 

    int[] answerArray = {answer, fakeFirstAnswer, fakeSecondAnswer}; 
    return answerArray; 
} 

return int[] answerArray = {answer, fakeFirstAnswer, fakeSecondAnswer}; 

誰でも構文を推薦できますか?私はちょうどJava/Androidを使い始めています。 Javaでは

+9

'return new int [] {...};' –

+0

私は参照してください。ありがとうございました! –

+1

重複:[ローカル変数は冗長javaです](http://stackoverflow.com/questions/26436155/local-variable-is-redundant-java)と[配列をインラインで宣言する方法は何ですか?](http: //stackoverflow.com/questions/1154008/anyway-to-declare-an-array-inline)の組み合わせ。 – Pshemo

答えて

0

は、array variable declarationsため、

int[] answerArray = {answer, fakeFirstAnswer, fakeSecondAnswer}; 

int[] answerArray = new int[] {answer, fakeFirstAnswer, fakeSecondAnswer}; 
//     ^-- the Java compiler does this 

の省略形ですソティリオス

で指摘したようにしかし、 returnは、変数宣言ではなく、明示的な new int[]構文を必要とします
return new int[] {answer, fakeFirstAnswer, fakeSecondAnswer}; 

(どちらの場合もJav aは自動的に配列の長さを決定します)。

関連する問題