首页 > 代码库 > 【java反射】Class类型的相关操作演练
【java反射】Class类型的相关操作演练
【一】获取范型接口的实现类的范型类型
(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); } } } }
【java反射】Class类型的相关操作演练
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。