How to convert type erasure in java generics
Today, I would like to share with you the relevant knowledge points about type erasure conversion in java generics. The content is detailed and the logic is clear. I believe most people still know too much about this knowledge, so share this article for your reference. I hope you can get something after reading this article.
Description
1. The generic value exists during the compilation phase. When the code enters the virtual machine, the generic value will be deleted.
2. This feature is called type deletion. When generics are deleted, he has two conversion methods. The first is that if the generics do not set a type upper limit, the generics will be converted to Object types, and the second is that if the type upper limit is set, the generics will be converted to their type upper limits.
Example
/ / No upper limit public class Test1 {T t; public T getValue () {return t;} public void setVale (T t) {this.t = t;} / / specify upper limit public class Test2 {T t; public T getT () {return t;} public void setT (T t) {this.t = t }} / / get their attribute type @ Testpublic void testType1 () {Test1 test1 = new Test1 (); test1.setVale ("11111"); Class through a reflection call