java 中获取字节码对象的三种方式

java 中获取字节码对象的三种方式

package cn.ms.test;

public class GetClassObject {
    public static void main(String[] args) {
        getClassObjectMethod1();
        getClassObjectMethod2();
        getClassObjectMethod3();
    }
    
    /*
     * 方式一
     * 通过对象获得
     * */
    private static void getClassObjectMethod3() {
        GetClassObject getClassObject1 = new GetClassObject();
        System.out.println(getClassObject1.getClass().getName());
    }

    /*
     * 方式二 重点掌握
     * 通过给定类的字符串名称(全类名)就可获得该类的字节码文件对象,更为扩展。
     * (第一种和第三种都不具有扩展性)
     * */
    private static void getClassObjectMethod2() {
        Class<GetClassObject> getClassObject2 = null;
        try {
            getClassObject2 = (Class<GetClassObject>) Class.forName("cn.ms.test.GetClassObject");
            System.out.println(getClassObject2.getName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    /*
     * 方式三
     * 任何数据类型都有一个静态的属性 .class来获取其对应类的字节码文件对象
     * 相对简单,但是还是要明确用到类中的静态成员。还是不够扩展!
     * */
    private static void getClassObjectMethod1() {
        Class getClassObject3 = GetClassObject.class;
        System.out.println(getClassObject3.getName());
    }
}

 

转载于:https://www.cnblogs.com/ms-grf/p/9026343.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101668.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最新慧联A6六轴陀螺仪(阿u)

    Lua固件更新说明如下:首推1.3基线,不支持1.2基线空中升级到1.3基线版本目录名称1.3底层core下载地址1.2底层core下载地址上层软件下载地址1.3底层core固件更新说明1.2底层core固件更新说明上层脚本更新说明空间说明Luat二次开发使用的Flash空间有两部分:脚本区和文件系统区脚本区:通过Luatools烧写的所有文件,都存放在此区域非TTS版本为720KB,TTS版本为426KB;如果烧录时,超过此限制,Luatools会报错不同版本的core可能会有差异,以

    2022年4月14日
    82
  • php runtimeexception,Laravel框架运行出错提示RuntimeException No application encryption…「建议收藏」

    php runtimeexception,Laravel框架运行出错提示RuntimeException No application encryption…「建议收藏」关于Laravel,出错提示,RuntimeException,No,application,encryption,key,has,been,specified.,解决方法,Laravel框架运行出错提示RuntimeExceptionNoapplicationencryptionkeyhasbeenspecified解本文实例讲述了Laravel框架运行出错提示RuntimeExc…

    2022年7月18日
    12
  • 剖析Disruptor

    剖析Disruptor剖析 Disruptor 为什么会这么快 一 锁的缺点原文 http ifeve com disruptor locks are bad 作者 Trisha s nbsp 译者 张文灼 潘曦 nbsp 整理和校对 方腾飞 丁一 MartinFowler 写了一篇非常好的文章 里面不仅提到了 Disruptor 而且还解释了 Disruptor 如何应用在 LMAX 的架构里 里面有提及了

    2026年1月30日
    1
  • 语义分割模型精度排名_场景语义分割

    语义分割模型精度排名_场景语义分割憨批的语义分割1——基于Mobile模型的segnet讲解学习前言什么是Segnet模型segnet模型的代码实现1、主干模型Mobilenet。2、segnet的Decoder解码部分代码测试学习前言最近开始设计新的领域啦,语义分割也是图像处理一个非常重要的应用方向,我查了很多资料苦于如何入门,接下来给大家讲讲里面比较基础的segnet模型。在下一个BLOG我会跟大家讲怎么训练自己的segn…

    2022年8月21日
    32
  • uint16t在那个头文件_uint16

    uint16t在那个头文件_uint16最近看代码里面涉及到unit8_t等数据类型,显然不是C原始数据类型,看名字猜测应该是使用typedef定义的。这样做主要是为了代码维护和移植时比较方便,比如C中没有bool,于是在一个软件中,一些程序员使用int,一些程序员使用short,会比较混乱,最好就是用一个typedef来定义,如:typedefcharbool;按照posix标准,一般整形对应的*_t类型为

    2025年12月13日
    7
  • 递归实例详解

    递归实例详解

    2021年9月16日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号