There's an existing bug for this. I'm not sure how fixable it's going to be; welcome to the implementation nitty gritty of generic types and type erasure. Just cause you don't see the typecasts doesn't mean the compiler has put them there.
Here's a challenge: what if there was a createWidget() method on your class. How would you implement it, to create an instance of the correct class? You can't do a new T() (the compiler won't let you, since it doesn't know what T is). On 6/25/07, Bill Holloway <[EMAIL PROTECTED]> wrote:
I have a Widget base entity extended by several concrete product entities. I have public class <T extends Widget> EditWidgetPage { ... @Persist public Long _someWidgetId; public T _someWidget; // normal setters / getters void onActivate (long id) { _someWidgetId = id; _someWidget = _dao.get (id); // gets right subtype of Widget. Generics. Tested. } // onPassivate as per usual pattern. void onActionFromEditForm () { _dao.saveOrUpdate (_someWidget); } } The page for this just uses a bean edit form, nothing else: object="someWidget". The saveOrUpdate call complains that someWidget is of type Widget rather than the subclass it's instantiated to be. Any thoughts? bill --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Howard M. Lewis Ship TWD Consulting, Inc. Independent J2EE / Open-Source Java Consultant Creator and PMC Chair, Apache Tapestry Creator, Apache HiveMind Professional Tapestry training, mentoring, support and project work. http://howardlewisship.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]