【一】获取范型接口的实现类的范型类型

(1)范型接口

package org.springframework.context;

import java.util.EventListener;

public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {

    /**
* Handle an application event.
* @param event the event to respond to
*/
void onApplicationEvent(E event); }

(2)范型接口实现类

package com.mobile.thinks.login.listen;

import org.springframework.context.ApplicationListener;

import com.mobile.thinks.login.event.BaseEvent;

public class LoginListen implements ApplicationListener<BaseEvent>{

    @Override
public void onApplicationEvent(BaseEvent event) { } }

(3)范型接口实现类的范型的填充类

package com.mobile.thinks.login.event;

import org.springframework.context.ApplicationEvent;

public abstract class BaseEvent extends ApplicationEvent {

    public BaseEvent(Object source) {
super(source);
} }

(4)获取范型的填充类的类型

    public static void main(String[] args) {
LoginListen listen=new LoginListen();
Class<?> cls =listen.getClass();
//cls==>class com.mobile.thinks.login.listen.LoginListen
System.out.println("cls==>"+cls);
Type[] type=cls.getGenericInterfaces();
Type types=cls.getGenericSuperclass();
for(int i=0;i<type.length;i++){
Type ty=type[i];
if(ty instanceof ParameterizedType){
Type[] sTypes=((ParameterizedType)ty).getActualTypeArguments();
for(int j=0;j<sTypes.length;j++){
Type clsa=sTypes[j];
//范型类型==>class com.mobile.thinks.login.event.BaseEvent
System.out.println("范型类型==>"+(Class)clsa);
}
}
}
}

最新文章

  1. Spark使用实例
  2. 一次Redis的使用Bug记录(exec)
  3. JavaScript Patterns 6.2 Expected Outcome When Using Classical Inheritance
  4. linux驱动初探之字符驱动
  5. Xenia and Bit Operations(线段树单点更新)
  6. ext在web工程目录导致myeclipse内存溢出问题
  7. Android --Activity与Fragment通讯
  8. 用类求圆面积c++
  9. Matlab命令eig
  10. Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)
  11. 动态插入图片到 svg 中
  12. 依赖注入及AOP简述(十三)——AOP应用举例(完结) .
  13. 介绍linux下Source Insight强大代码编辑器sublime_text_3
  14. python批量处理
  15. C#版(击败100.00%的提交) - Leetcode 744. 寻找比目标字母大的最小字母 - 题解
  16. Mac连接非22端口linux服务器
  17. 比MR至少快5倍的神器,竟然是它
  18. kattis Programming Tutors 给游客与导游匹配(二分+二分图)
  19. InnoDB 与 MYISAM的区别和联系
  20. SimpleDateFormat 出现错误 Call requires API level 24 (current min is 15)

热门文章

  1. Authentication token is no longer valid
  2. GIT使用—一些概念
  3. [转载]织梦DEDE多选项筛选_联动筛选功能的实现_二次开发
  4. jQuery对象和dom对象的转换
  5. Pandas注意事项&窍门
  6. Django Celery Redis 异步执行任务demo实例
  7. Django进阶Model篇008 - 使用原生sql
  8. appium自动化测试(二)
  9. 使用VS自带的工具分析.NET程序的性能
  10. 内存保护机制及绕过方法——利用未启用SafeSEH模块绕过SafeSEH