Jorge, that's great news! Having to use the classOf definitely felt a little clunky so this will help clean things up a lot. The "undocumented and experimental" part scares me a little, but if this will eventually be core functionality I think we'll definitely move to it.
Thanks, Derek On Wed, Oct 15, 2008 at 1:49 AM, Jorge Ortiz <[EMAIL PROTECTED]> wrote: > Derek, > > With the upcoming release of 2.7.2, you can update all this classOf[T] > stuff to use scala.reflect.Manifest[T], which handles all that stuff for you > almost automagically. > > I've been meaning to blog about this, but haven't found the time. The short > example is: > > def find[A](id: Any)(implicit m: scala.reflect.Manifest[A]) = > em.find[A](m.erasure, id).asInstanceOf[A] > > Which can be invoked as: > > val user = find[User](userId) > > The compiler will fill in the implicit Manifest parameter for you. Manifest > represents a Scala type. You can test two Manifests for subtype and > supertype relationships. You can also call "erasure" on a Manifest to get > the Java Class corresponding to the runtime erasure of that type. > > Manifests are undocumented and experimental, so proceed with caution. > Eventually they'll be the backbone of a native Scala reflection API (yay!) > > --j > > > On Tue, Oct 14, 2008 at 6:13 PM, Derek Chen-Becker <[EMAIL PROTECTED]>wrote: > >> You can just do Model.find(classOf[User], userId) and the type on the >> method will be inferred. Any time you see a Class[A] parameter, it wants the >> result of a classOf[...]. >> >> Derek >> >> On Tue, Oct 14, 2008 at 5:52 PM, Charles F. Munat <[EMAIL PROTECTED]> wrote: >> >>> >>> A question from the JPADemo... >>> >>> How does one use this: >>> >>> def find[A](clazz: Class[A], id: Any) = >>> em.find[A](clazz, id).asInstanceOf[A] >>> >>> If I have a User model and I want to use find on the EntityManager, what >>> goes where the *** is below: >>> >>> val user = Model.find[User]( ***, userId) >>> >>> Thanks, >>> >>> Chas. >>> >> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---
