Idea how to implement VT/VO compatibility in JVM

Vitaly Davidovich vitalyd at gmail.com
Thu Jan 22 13:57:56 UTC 2015


As for elegance, IMHO, these types of frameworks are already neck deep in
reflection.  Vast majority of code would use generics with static binding,
I imagine.

sent from my phone
On Jan 22, 2015 8:52 AM, "Stéphane Épardaud" <stef at epardaud.fr> wrote:

> On 01/22/2015 02:46 PM, Vitaly Davidovich wrote:
>
>>
>> Yes, but I'm not proposing to handle every value type (which is
>> impossible anyway since you don't know the set). Instead, what would be
>> nice is to allow calling <any T> methods at runtime by providing the T
>> parameter at that point, after getting it via reflection.  This requires
>> some form of reification/VM support though.
>>
>>
>>  Well, if I understand it correctly, value type arguments will be reified
> necessarily because they end up specialising the type they parameterise. So
> given a `List<Date>` instance you would get a `List${0=QDate;}` class, from
> which it _must surely_ be possible to extract the `Date` type argument at
> runtime via reflection. So while that information is lost in an instance of
> `List<Object>` (erasure), it should not be erased from instances of generic
> types whose type arguments are value types.
>
> So yeah, that's an option, but it would _still_ require autoboxing of any
> value type you put in or extract via reflection. And be less elegant
> because it forces you to use reflection for every method invocation of
> `Collection<val ?>`.
>


More information about the valhalla-dev mailing list