栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java反射机制的一个小示例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java反射机制的一个小示例

目录结构

User

package com.xiao.entity;


public class User {
}

父类

package com.xiao;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;


public class T1 {
    public T1() {
       

        //获取继承类,getClass():class com.xiao.T2
        Class aClass = getClass();
        System.out.println("getClass():"+aClass);
        //获取被继承类,genericSuperclass: com.xiao.T1
        Type genericSuperclass = aClass.getGenericSuperclass();
        System.out.println("genericSuperclass: "+ genericSuperclass);
        //参数化 ,我目前看不出来发生了什么变化g enericSuperclass1: com.xiao.T1
        ParameterizedType genericSuperclass1 = (ParameterizedType) genericSuperclass;
        System.out.println("参数化 genericSuperclass1: "+genericSuperclass1);
        //获取超级类的实际类型参数 actualTypeArgument: class com.xiao.entity.User
        Type actualTypeArgument = genericSuperclass1.getActualTypeArguments()[0];
        System.out.println("actualTypeArgument: "+ actualTypeArgument);
        //如果没有反射机制,就没法获取实际类型参数的名称了
        
        String typeName = actualTypeArgument.getTypeName();
        System.out.println("typeName: "+typeName);
        String s = actualTypeArgument.toString();
        System.out.println("s:" + s);
        Class aClass1 = actualTypeArgument.getClass();
        System.out.println("aClass1: " + aClass1);
        //反射机制 actualTypeArgument1: class com.xiao.entity.User
        Class actualTypeArgument1 = (Class) actualTypeArgument;
        System.out.println("actualTypeArgument1: "+ actualTypeArgument1);
        Class actualTypeArgument1Class = actualTypeArgument1.getClass();
        System.out.println("actualTypeArgument1Class: " + actualTypeArgument1Class);
        //获取名称
        String simpleName = actualTypeArgument1.getSimpleName();
        System.out.println("simpleName: "+simpleName);

    }
}

子类

package com.xiao;

import com.xiao.entity.User;


public class T2 extends T1 {
    public static void main(String[] args) {
        T2 t = new T2();
    }
}

祝你好运!

希望能帮你理解些!注释的内容可以不用看,本人随便写的个人感受。
下面部分的内容不用看了!!!!
下面部分的内容不用看了!!!!

有些说法可能不太合理,希望多多参考,我也是今天开始了解这个java反射机制。之前,老师也有将,没怎么用?所以没怎么了解,等真正需要的时候才肯去学,肯了解。多看看有些的开源项目,拿来学学?多上网搜搜,我这个也是参考别人的代码,让后试着去理解,并标记,我的方法可能有误,当然,目前本人根据自己还是这个行业的门外汉。哎!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号