初始化包含对象数组的Java对象实例

初始化包含对象数组的Java对象实例,java,arrays,object,initialization,Java,Arrays,Object,Initialization,以下代码是正确的: 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 Sampl

以下代码是正确的:

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)
        };
但我想写一些东西,比如:

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) } )
        };
这是不可编译的


我是否缺少一些语法,或者这是一种语言“功能”?

您需要告诉它作为参数传递的数组的类型:

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) } )
};
如果没有
new
表达式,大括号在语法上是无效的(因为它们是初始值设定项--在本例中--但您没有说过有任何东西需要初始化)。

使用:

那你就可以了

 new SampleSet("oboe", new Sample(1, 1), new Sample(1, 2));

与此问题类似::)以下任何答案是否回答了您的问题?
 new SampleSet("oboe", new Sample(1, 1), new Sample(1, 2));