反射的使用

反射的使用

拿到此类的接口/包/注解

import java.lang.annotation.Annotation;

@Deprecated
public class demo6 implements Runnable {
    @Override
    public void run() {

    }

    public static void main(String[] args) {
        Class demo6Class = demo6.class;
        // 拿到接口
        Class[] interfaces = demo6Class.getInterfaces();
        for (Class anInterface : interfaces) {
            System.out.println("接口有:" + anInterface);
        }
        // 拿到包
        Package aPackage = demo6Class.getPackage();
        System.out.println("包 => " + aPackage);
        // 拿到注解
        Annotation[] annotation = demo6Class.getAnnotations();
        for (Annotation annotation1 : annotation) {
            System.out.println("注解 => " + annotation1);
        }
    }
}

拿到父类的泛型

/*
 * 通过反射拿到父类的泛型
 * */
   public class Demo {
    public static void main(String[] args) {
        Class demo01Class = Demo01.class;
        ParameterizedType parameterizedType = (ParameterizedType) demo01Class.getGenericSuperclass();
        Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
        System.out.println(actualTypeArguments[0]);
    }
   }

class Demo01 extends Demo02<Integer> {

}

class Demo02<T> {

}
posted @ 2022-03-09 10:00  CoderCatIce  阅读(17)  评论(0)    收藏  举报
相关博文:
阅读排行:
· 完成微博外链备案,微博中直接可以打开园子的链接
· 推荐 3 种 .NET Windows 桌面应用程序自动更新解决方案
· .NET 10 支持Linux/Unix 的Shebang(Hashbang)
· 一个基于 .NET 开源、模块化 AI 图像生成 Web 用户界面
· 上周热点回顾(6.9-6.15)
点击右上角即可分享
微信分享提示