Why Arrayish implements Cloneable?
Brian Goetz
brian.goetz at oracle.com
Wed Apr 27 14:45:56 UTC 2016
Currently, the array classes (int[].class, String[].class) are totally
magical and spring into existence when referenced. They all happen to
have some common supertypes (Cloneable, Serializable).
This patch moves things forward incrementally (see John's talk on Arrays
2.0, http://medianetwork.oracle.com/video/player/1785452137001) by
providing all arrays with a real supertype, Arrayish, which exposes
element accessors. This allows, for example, abstraction over array
types (<T extends Arrayish>), as well as being a precursor to some other
cool stuff.
On 4/27/2016 10:32 AM, Paul Benedict wrote:
> Oh, okay ... so basically when you let the native "any" type be boxed,
> you're exposing the same functionality through an interface.
>
> Cheers,
> Paul
>
> On Wed, Apr 27, 2016 at 9:25 AM, Brian Goetz <brian.goetz at oracle.com
> <mailto:brian.goetz at oracle.com>> wrote:
>
> Because array types (int[], String[]) *already* implement
> Cloneable and Serializable.
>
>
>
>
>
> On 4/27/2016 10:18 AM, Paul Benedict wrote:
>
> I only ask because Cloneable is typically looked at as a poor
> mechanism for
> duplicating objects. That's the sentiment, anyway, widely
> popularized by
> the Effective Java book.
>
> Cheers,
> Paul
>
>
>
More information about the valhalla-dev
mailing list