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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • c++ vector下标_vectorat

    c++ vector下标_vectoratC语言(加了层语法糖的汇编)为了性能并不支持数组的越界检查,每次检查会多付出2-3倍的时间。而vector以at的形式支持越界检查,但也支持C语言风格的[]高效访问,没错C++提供了足够的自由。当要获取std::vector的第n个元素,下面几种方式都可以:  std::vector&lt;int&gt;vec; size_tn=1; in…

  • Python与Pycharm安装包

    Python与Pycharm安装包Python3.6.4与Pycharm安装包

  • mybatis缓存问题「建议收藏」

    mybatis缓存问题「建议收藏」目前系统正常使用,突然来个用户注册,可是账号太长,导致数据库没法保存,所以觉得把数据库表的字段改大点,问题解决。但是问题又来了,修改字段长度后系统没有重启,导致查出来的数据为字段没有修改长度之前的那个长度,比如说:字段长度修改前,字段长度为varchar(16),用户账号是;8832226780@qq.com,注册失败,字段修改后,字段长度改为varchar(32),用户账号是;88322

  • 项目范围管理知识领域共有六个过程_项目范围管理的主要内容

    项目范围管理知识领域共有六个过程_项目范围管理的主要内容项目范围管理项目范围管理包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程。管理项目范围主要在于定义和控制哪些工作应该包括在项目内,哪些不应该包括在项目内项目范围管理的各个过程,包括:5.1规划范围管理一创建范围管理计划,书面描述将如何定义、确认和控制项目范围的过程。5.2收集需求—一为实现项目目标而确定、记录并管理干系人的需要和需求的过程5.3定义范围——制定项目和产品详细描述…

  • 【Java面试题】一次完整的Http请求过程(非常详细)

    【Java面试题】一次完整的Http请求过程(非常详细)当我们在浏览器的地址栏输入 www.google.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?以下过程仅是个人理解:域名解析–>发起TCP的3次握手–>建立TCP连接后发起http请求–>服务器响应http请求,浏览器得到html代码–>浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)

  • sqlserver截断字符和二进制数据_SQL异常字符串截断

    sqlserver截断字符和二进制数据_SQL异常字符串截断错误信息提示:  Java代码  Error! [8152]System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。语句已终止。   原因:增加的数据类型与数据库中字段所定义的不符。 解决方法:1、修改数据库字段大小;2、加强数据强壮性,严格的输入判断。 防止添加的信息类型或者长度与数据库表中字段所对应的类型不符合。…

发表回复

您的电子邮箱地址不会被公开。

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