Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Initializing Java object instances containing an array of objects

The following code is correct:

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)
        };

but I'd like to write something like:

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) } )
        };

This does not compile.

Is there some bit of syntax I'm missing, or is this a language 'feature'?

like image 610
Mark Avatar asked Apr 23 '26 11:04

Mark


1 Answers

You need to tell it the type of the arrays you're passing as parameters:

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) } )
};

Without the new expression, the braces aren't valid syntactically (because they're initializers -- in this case -- but you haven't said there's anything there to initialize).

like image 119
T.J. Crowder Avatar answered Apr 26 '26 01:04

T.J. Crowder



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!