> 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.

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 :-)

-- 
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