文章详情页
java中可以通过类的class属性得到该类的字节码文件对象?
浏览:132日期:2024-01-23 15:13:54
问题描述
如Class c1 = Student.class;可是无论是Student类还是它继承的Object类都没有class属性呀?
问题解答
回答1:谢邀。
首先纠正一个错误,class 是 keyword ,不是 Student 类里的 static member 。<class-name>.class 是 Java 中的某个特定语法。
其次,要得到该类的字节码文件,必须到文件系统中去找,无非就是 Student.class.getResource/getResourceAsStream 之类的方法,比较麻烦。建议看下asm、cglib等字节码开源项目。
最后,字节码是种比较复杂的技术,不得已而用之,比如获取方法参数里的Annotation(参考Spring Web MVC)。有些貌似可能和字节码有关的技术,实际上可以绕过,例如基于interface的AOP,完全可以用Proxy而不是用字节码来实现的。
回答2:我查的一个说法是,这个不是一个关键字,而是一个字面量,你可以尝试直接再ide中敲“Student.class”,是会提醒你需要将这个值赋给某个变量的。如果后续有查到新的会再补充,至于类加载的话,可以参考我的一篇博客自定义类加载器-从.class和.jar中读取
标签:
java
相关文章:
1. android - RxJava 中有根据条件执行不同函数的操作符吗?2. javascript - html5的data属性怎么指定一个function函数呢?3. html5 - 为什么使使用vue cli 脚手架,post-css 没有自动对css3属性自动添加浏览器前缀呢?4. angular.js - 输入邮箱地址之后, 如何使其自动在末尾添加分号?5. 管理员信息修改时的密码问题6. python - Scrapy存在内存泄漏的问题。7. java如何生成token?8. javascript - 后台管理系统左侧折叠导航栏数据较多,怎么样直接通过搜索去定位到具体某一个菜单项位置,并展开当前菜单9. javascript - 如何使用nodejs 将.html 文件转化成canvas10. mysql - 电商如何存储营业额数据
排行榜
