See you at JVMLS

Christoph Engelbert chris at hazelcast.com
Wed Aug 19 15:28:10 UTC 2015


Hey Peter,

Interesting catch but as long as Bar doesn’t have any generic methods why do we have to create a generalized class? Methods won’t be generalized anyways, do they? I have the feeling I’m missing something in your explanation :)

Chris



> On 19 Aug 2015, at 16:55, Peter Levart <peter.levart at gmail.com> wrote:
> 
> 
> 
> On 08/18/2015 11:59 PM, Rémi Forax wrote:
>> It can not work because if the method in B is package visible it should in Foo$any or not depending if the code that use Foo$any is in the same package as B or not.
> 
> That's a problem. There would have to be a Bar$any interface with methods from Bar (and Foo$any extends Bar$any) even though Bar is not using "any T" generics in it's declaration...
> 
> Also, if Foo<any>.class is an interface, one could create a:
> 
>     Foo<any> proxy = Proxy.newProxyInstance(..., new Class<?>[] { Foo<any>.class }, ...);
> 
> and try to assign:
> 
>    Bar bar = proxy;
> 
> So it seems that Bar.class.isAssignableFrom(Foo<any>.class) would have to return false...
> 
> Peter
> 
>> 
>> regards,
>> Rémi
>> 
>> Le 18 août 2015 23:53:21 CEST, Brian Goetz <brian.goetz at oracle.com> a écrit :
>>> Yes, that has to work, though it doesn't currently.  On the list...
>>> 
>>> On 8/18/2015 5:49 PM, Palo Marton wrote:
>>>> Yes, that's a nice sidestep ;-)
>>>> My question was meant in a general way, not only about results of
>>>> instanceof/isAssignableFrom. What about methods of Bar? Will you
>>>> recreate them in Foo$any? What about eg call to
>>>> f.barMethod()?
>>>> On ut, 18. aug 2015 at 23:39 Brian Goetz <brian.goetz at oracle.com
>>>> <mailto:brian.goetz at oracle.com>> wrote:
>>>> 
>>>>     I'll sidestep your clever question by pointing out that the left
>>> operand
>>>>     of an instanceof check is an expression, not a type.
>>>> 
>>>>     If you have:
>>>> 
>>>>           Foo<any> f = ...
>>>> 
>>>>           if (f instanceof Bar) { ... }
>>>> 
>>>>     this works just fine, because all instantiations of Foo<T> are
>>>>     represented by classes whose supertype is Bar.  The harder
>>> question is
>>>>     the reflective one (Class.isAssignableFrom.)  But reflection is
>>> still a
>>>>     work in progress (as is the whole thing, of course.)
>>>> 
>>>>     On 8/18/2015 5:30 PM, Palo Marton wrote:
>>>>      > Thanks. I have just watched your talk on Valhalla. Just one
>>> curious
>>>>      > question on xxx$any interfaces: How do you handle this?
>>>>      >
>>>>      > class Foo<any T> extends Bar { }
>>>>      >
>>>>      > Foo$any instanceof Bar?
>>>>      > On ut, 18. aug 2015 at 19:02 Brian Goetz
>>> <brian.goetz at oracle.com
>>>>     <mailto:brian.goetz at oracle.com>
>>>>      > <mailto:brian.goetz at oracle.com
>>> <mailto:brian.goetz at oracle.com>>>
>>>>     wrote:
>>>>      >
>>>>      >     JVMLS talks up at:
>>>>      > https://www.youtube.com/user/java
>>>>      >
>>>>      >
>>>>      >     On 8/8/2015 12:05 PM, Brian Goetz wrote:
>>>>      >      > I'll be doing a talk on the path from Model 1 to Model
>>> 2
>>>>     (and a
>>>>      >     glimpse
>>>>      >      > of Model 3) at JVMLS next week.  Hope to see some of
>>> you
>>>>     there.
>>>>      >     Videos
>>>>      >      > should go up on the Java YouTube channel fairly quickly
>>>>     after the
>>>>      >      > conference.
>>>>      >      >
>>>>      >      > In the meantime ... I'll just note that we've had 50+
>>>>     messages on the
>>>>      >      > various "Model 2" threads and none of them started with
>>> "I
>>>>     tried
>>>>      >     it out
>>>>      >      > and..."
>>>>      >      >
>>>>      >      > So a reminder ... the most valuable input the community
>>>>     can give
>>>>      >     in this
>>>>      >      > process is to provide *actual experience reports*.
>>> That's
>>>>     the main
>>>>      >      > reason we make the significant investment in making the
>>>>     code and
>>>>      >     design
>>>>      >      > sketches available early -- so that people can actually
>>> try it
>>>>      >     out, and
>>>>      >      > help us see the holes that we might have missed.
>>>>      >      >
>>>>      >      >
>>>>      >
>>>>      > --
>>>>      > Pavol Marton
>>>> 
>>>> --
>>>> Pavol Marton
> 



More information about the valhalla-dev mailing list