2013/6/28 Durchholz, Joachim <[email protected]>

> > I.e.
> > abstract class FooImpl <T extends FooImp<T>> {
> >   ... lots of code ...
> > }
> > class Foo extends FooImpl<Foo> {
> >   ... no code except maybe constructors ...
> > }
> >
> > In essence, I'm saying that Foo needs to be final,
> > or you'll shoot yourself into the foot
>
> And I'm challenging that. I think there are cases where it's safe and
> cases where it isn't.
>

Yes. It's not wrong. But it's dangerous. And it was wrong in the case of
org.jooq.Field :-)


> However, I have to carefully read and understand which of the many deeper
> issues with subtyping are actually at work with that. Which means I'll have
> to reread the blog post, think about it for a bit, possibly clean up my own
> mess, decide whether the unsafe stuff is even compile-time-checkable, find
> examples... so it's going to take me some time to back that challenge with
> arguments.
> It's entirely possible that it can't be made safe in Java's type system.
> I'll have to see :-)


Enjoy!

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to