对abstract关键字的另一番理解 博客分类: java java
程序员文章站
2024-03-14 12:07:34
...
直接上代码:
这段代码很奇怪。如果在类上加入abstract关键字也就是main方法中的new就可以获取类上的泛型,如果不加就是注释掉的方法获取泛型就不行。
百思不得其解:后来终于明白了,加了abstract关键字那么new的就是当前类的子类。所以可以获取,如果不加,当前类没有超类直接超类是java.lang.Object.所以不行。
public abstract class AnnotionMapper<T> implements Comparable<AnnotionMapper<T>>{ private Type _type; public AnnotionMapper() { Type superClass = getClass().getGenericSuperclass();// 获取该类的直接超类 _type = ((ParameterizedType) superClass).getActualTypeArguments()[0]; } public Type get_type() { return _type; } public void set_type(Type _type) { this._type = _type; } @Override public int compareTo(AnnotionMapper<T> o) { return 0; } public static void main(String[] args) { AnnotionMapper<ImageUrl> annotionMapper = new AnnotionMapper<ImageUrl>() { }; //AnnotionMapper<ImageUrl> annotionMapper = new AnnotionMapper<ImageUrl>(); System.out.println(annotionMapper.get_type()); /*new TypeReference<T>() { };*/ }
这段代码很奇怪。如果在类上加入abstract关键字也就是main方法中的new就可以获取类上的泛型,如果不加就是注释掉的方法获取泛型就不行。
百思不得其解:后来终于明白了,加了abstract关键字那么new的就是当前类的子类。所以可以获取,如果不加,当前类没有超类直接超类是java.lang.Object.所以不行。
推荐阅读
-
对abstract关键字的另一番理解 博客分类: java java
-
java static关键字的作用 博客分类: java static关键字
-
java初学者对字符串的常用操作 博客分类: core java StringUtilsjavawebstring
-
JAVA基础----java中final和static关键字的理解 博客分类: JAVA基础 javastaticfinal关键字
-
泛型的简单理解 博客分类: JAVA基础 JAVA基础泛型理解编译器
-
浅析对Java关键字final和static的理解
-
浅析对Java关键字final和static的理解
-
java编程思想中对synchronized的一点解释: 博客分类: JAVA面试题 编程Java多线程thread制造
-
java编程思想中对synchronized的一点解释: 博客分类: JAVA面试题 编程Java多线程thread制造
-
Resin3和4对slf4j的要求 博客分类: Java