Chas Honton wrote: > Try casting Object[] to long[]. The compiler and the runtime will > complain.
It is not about a cast, it's about returning the proper object. And it has nothing to do with primitives, because you cannot cast e.g. Object[] to String[] either. > >> On Apr 27, 2016, at 11:59 PM, Jörg Schaible >> <joerg.schai...@bpm-inspire.com> wrote: >> >> Hi Oliver, >> >> Oliver Heger wrote: >> >>> Hi Rainer, >>> >>>> Am 27.04.2016 um 21:22 schrieb Rainer Hirschmiller: >>>> Hi. >>>> >>>> I wonder why AbstractConfiguration::getArray(cls, key) returns a single >>>> object, not an array of objects? Can somebody explain why the caller >>>> have to make an explicit cast? >>>> >>>> e.g. >>>> AbstractConfiguration &configuration = ....; >>>> >>>> Object obj = configuration.getArray(String.class, "key); >>>> // expected Object[] obj = configuration.getArray(String.class, "key); >>> >>> the explanation can be found in the Javadocs of the ConversionHandler >>> interface which is used behind the scenes. Citing from the docs of the >>> toArray() method: >>> >>> "Note that the result type of this method is Object; because this method >>> can also produce arrays of a primitive type the return type Object[] >>> cannot be used." >> >> That does not explain, why the method is not declared using generics: >> >> public <T> T[] toArray(Class<T> cls, String key); >> >> Cheers, >> Jörg >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org >> For additional commands, e-mail: user-h...@commons.apache.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org