java - What happens to type if I derive non-generic class from a generic class? -


let say, have usual pojo called person. now, instance of arraylist<person> have type arraylist @ runtime due type erasure. if instance undergoes serialization/deserialization through library gson, desirialized object not arraylist<person> unless, of course, provide type token.
now, here question. happens if create class (say persons) follows:

public class persons extends arraylist<person> { } 

will type information preserved here? deserialization mechanism able infer type indeed arraylist<person> , not raw type arraylist?

will type information preserved here?

yes; example, this:

final parameterizedtype supertypeofpersons =     (parameterizedtype) persons.class.getgenericsuperclass(); system.out.println(supertypeofpersons.getactualtypearguments()[0].getsimplename()); 

will print person.

is deserialization mechanism able infer type indeed arraylist<person> , not raw type arraylist?

it potentially could so, doesn't mean does so; it's not trivial thing do. if there specific set of serialization frameworks need support, should test each of them.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -