Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

立志于全桟开发
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Mysql

  • PHP

  • Python

  • java

    • java基础

      • java注解
      • java反射
        • 获取 Class 对象的三种方式
          • Class.forName("全类名")
          • 类名.class
          • 对象.getClass()
      • JDBC
    • java常用插件

    • spring

    • servlet

    • struts2基本使用及常见问题
    • Tomcat使用常见问题
    • IDEA基本使用
  • Go

  • ElasticSearch

  • Git

  • Gulp

  • 钉钉开发

  • Microsoft

  • 其它

  • 技术
  • java
  • java基础
mrcdh
2022-02-12
目录

java反射

# 获取 Class 对象的三种方式

# Class.forName("全类名")

将字节码文件加载进内存,返回 Class 对象

Class cls = Class.forName("cn.mrcdh.Demo");
1

# 类名.class

通过类名的属性class获取

Class cls = Demo.class;
1

# 对象.getClass()

通过对象的getClass()方法获取

Demo demo = new Demo();
Class cls = demo.getClass();
1
2

注意

同一个字节码文件(*.class)在一次程序运行过程中,只会被夹在一次,不论通过哪种方式获取的 class 对象都是同一个

// 1. Class.formName("全类名")
Class class1 = Class.forName("cn.mrcdh.Demo");
System.out.println(class1);
// 2. 类名.class
Class class2 = Demo.class;
System.out.println(class2);
// 3. 对象.getClass()
Demo p = new Demo();
Class class3 = p.getClass();
System.out.println(class3);

// == 比较三个对象
System.out.println(class1 == class2);
System.out.println(class2 == class3);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

结果:true true

#java
上次更新: 2022/02/13, 16:02:00
java注解
JDBC

← java注解 JDBC→

最近更新
01
python之Anaconda(conda)版本管理
03-24
02
electron文件缓存
02-16
03
vuex数据持久化插件vuex-persist
02-14
更多文章>
Theme by Vdoing | Copyright © 2020-2023 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×