Mar*_*ark 3 java arrays initialization object
以下代码是正确的:
public Sample mOboeSamples[] = { new Sample(1,1), new Sample(1,2) };
public Sample mGuitarSamples[] = { new Sample(1,1), new Sample(1,2) };
public SampleSet mSampleSet[] = {
new SampleSet( "oboe", mOboeSamples ),
new SampleSet( "guitar", mGuitarSamples)
};
Run Code Online (Sandbox Code Playgroud)
但是我想写一些类似的东西:
public SampleSet mSampleSet[] = {
new SampleSet( "oboe", { new Sample(1,1), new Sample(1,2) } ),
new SampleSet( "guitar", { new Sample(1,1), new Sample(1,2) } )
};
Run Code Online (Sandbox Code Playgroud)
这不编译.
是否有一些我缺少的语法,或者这是一种语言'功能'?
T.J*_*der 11
您需要告诉它您作为参数传递的数组的类型:
public SampleSet mSampleSet[] = {
new SampleSet( "oboe", new Sample[] { new Sample(1,1), new Sample(1,2) } ),
new SampleSet( "guitar", new Sample[] { new Sample(1,1), new Sample(1,2) } )
};
Run Code Online (Sandbox Code Playgroud)
没有new表达式,大括号在语法上是无效的(因为它们是初始化器 - 在这种情况下 - 但你没有说有任何东西可以初始化).