Skip to main content

Posts

Showing posts with the label generics

Generics in Java, Standard Values

Ok, so I was reading the Java online tutorial for generics and I found this: E - Element (used extensively by the Java Collections Framework) K - Key N - Number T - Type V - Value S,U,V etc. - 2nd, 3rd, 4th types I have seen a lot of methods in Java use the "E" notation but I was looking for a method that uses the "K", key notation. Anyone can help please?

Instantiate a type based on json and metadata using lift-json

I would like to deserialise Scala case classes that have been serialised using lift-json. The problem I am having is, I don't know how to invoke the generic method extractOpt[A] method below: someString:String = {...} JsonParser.parse(someString).extractOpt[A] The type of [A] is going to depend on metadata, for example the class name of [A] but for the life of me I can't work out how to make the call using reflection. In c# I would just be able to set the generic type for a call on extractOpt[A] using reflection. I fear my problems are something to do with Java type erasure. I am going to have a lot of case classes so I really want to avoid having to create some kind of hand crafted map from {metadata} -> classOf[]. I have full control over what the metadata associated with someString is. If it helps understand why I have this issue, I am implementing event sourcing, and all my [A] types are going to be persisted events. Any ideas what I can do?