直接上代码:
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.所以不行。
分享到:
相关推荐
java学习-java中的abstract关键字
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。 接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。 接口中的方法都是公有的。
Java面向对象(高级)-- 抽象类与抽象方法(或abstract关键字)
abstract 关键字用于定义抽象方法与抽象类。 抽象方法 抽象方法指没有方法体的方法,具体就是在方法声明的时候没有 {} 括弧以及其中的内容,而是直接在声明时在方法名后加上分号结束。 abstract 关键字用于定义抽象...
主要介绍了Java final static abstract关键字的相关资料,需要的朋友可以参考下
//Abstract关键字必须与Virtual或Dynamic关键字同时使用, 因为抽象方法必须被覆盖式实现. //抽象类不能实例化, 抽象方法不能包含方法体. type TDemo = class private protected procedure X; virtual; abstract;...
Java关键字总结珍藏版1.abstract Java 关键字 abstract 关键字可以修改类或方法。 abstract 类可以扩展(增加子类),但不能直接实例化。 abstract 方法不在声明它的类中实现,但必须在某个子类中重写。 示例 ...
深入理解C# abstract和virtual关键字,学习c#的朋友可以参考下。
面向对象部分让人搞晕的几个关键字,我这里专门针对这几个关键字进行了整理相关的面试题,只要你能做对80%,就证明你面向对象基本学懂了
new、abstract、virtual、override,sealed关键字区别和使用代码示例
下面小编就为大家分享一篇详谈PHP中public,private,protected,abstract等关键字的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
使用: abstract 关键字修饰,包含抽象方法。 如:平面图形一定可以计算面积。 3) 抽象类不能直接创建实例。可以定义引用变量。 4) 抽象类只能被继承,一个具体类继承一个抽象类,必须实 现所有抽象方法。 5...
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的...本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。
java中50个关键字的作用 Abstract break continue final protected ==
揽括了java中常见的关键字及用法,包括Abstract、instanceof、private、protected等等。
abstract 关键字 抽象 [" bstr kt] access vt 访问 存取 [" kses]" n 入口 使用权 algorithm n 算法 [" lg riem] annotation [java]代码注释 [ n u"tei n] anonymous adj 匿名的[ &...
c#中的关键字(共76个),归纳整理的相当详细