2017-11-22 11 views
-4

私はJavaのオブジェクト配列に慣れようとしていますが、1行にオブジェクト配列を宣言し、それを後の行で初期化するのが失敗することを試みていました。これは可能ですか?フォーマットミスをしているのですか、できないことをやろうとしていますか?Javaでオブジェクト配列を宣言し、後で初期化することは可能ですか?

tl:dr; Javaオブジェクト配列は以下のようなことができますか?

int[] s; 
s = new int[]{ and put the list here..} 

編集:私は、これは文字クラスの下にちょうど宣言行で正しくコンパイルが、私はそれの後に追加した行をコンパイルしようとすると、私の現在のコードとエラー例

public class noncombatSKILLS { 
     noncombatSKILLS (String receivName , String receivDescription , int receivDamage) 
     { 
     name = receivName ; 
     description = receivDescription ; 
     damage = receivDamage ; 
! 
! 
public class CHARACTER { 
noncombatSKILLS[] noncombat; 
noncombat[] = { new noncombatSKILLS("Scavenge" , "find some parts" , 123) } ; 

を追加'エラー': 'ステートメントではない' '非コンバット'の後に角かっこを指します

+5

あなたが提案する構文を正確に試してみるとどうなりますか? – khelwood

+2

http://idownvotedbecau.se/noattempt/ – Andreas

+0

@khelwoodでコード例とエラー –

答えて

0

単語には - はい。

String[] s; 
s = new String[] {"a", "b", "c"}; 

EDIT:例えば、String sと、

int[] s; 
s = new int[] {1, 2, 3}; 

とオブジェクトのために、このような:これは、プリミティブの両方が可能である
編集した質問を見てみると、問題が配列ではなく、任意の文をメソッド、コンストラクタ、イニシャライザブロックのいずれかに入れる必要があります。

public class CHARACTER { 
    // This is a member: 
    noncombatSKILLS[] noncombat; 

    // And this is an initializer block: 
    { 
     noncombat[] = { new noncombatSKILLS("Scavenge" , "find some parts" , 123) } ; 
    } 
} 
などの任意の文を classの下に置くことはできません。
+0

私はそう思っていましたが、カスタムクラス/コンストラクタを使用するとコンパイルエラーが発生します。私の質問を更新しました –

+0

@A.Mulder私の編集された答えを見てください。 – Mureinik

+0

興味深い。それは範囲の問題なのですか? –

関連する問題