zoukankan      html  css  js  c++  java
  • java 获得Class对象

    如何得到各个字节码对应的实例对象?

    每个类被加载后,系统会为该类生成对应的Class对象,通过Class对象可以访问到JVM中的这个类,

    3种方式:

    1、调用某个类的class属性获取Class对象,如Date.class会返回Date类对应的Class对象(其实就是得到一个类的一份字节码文件);

    2、使用Class类的forName(String className)静态方法,className表示全限定名;如String的全限定名:java.lang.String;

    3、调用某个对象的getClass()方法。该方法属于Object类;

    Class<?> clz = new Date().getClass();

    Eg:

    package junereflect624;

    public class ClassDemo1 {

        public static void main(String[] args) throws Exception {

            //获得Class对象的方法(三种)

            //一:调用属性

            Class<String> c = String.class;

            System.out.println(c);//打印结果:class java.lang.String                String.class就表示JVM中一份表示String类的字节码

            Class<String> c2 = String.class;

            System.out.println(c == c2);//true都是String类的字节码        一个类在虚拟机中只有一份字节码;

           

            //二:使用forName()方法

            //Class cla = Class.forName("String");//ERROR,

            Class<String> cla =                                                         (Class<String>)Class.forName("java.lang.String");//必须用上全限定名,否则报错

            System.out.println(c == cla);//true

           

            //三:利用对象调用Object的getClass方法;

            Class c3 = new String().getClass();

            System.out.println(c == c3);//ture

        }

    }

    我的总结:获取Class对象最常用的是利用属性的方法!

  • 相关阅读:
    node的二进制权限比对设计
    如何获取和杀死node中子进程的pid,以及系统上的小坑
    node express框架下接收、发送和解析iso-8869-1编码
    node.js 小端十六进制的十进制互转以及十六进制大小端转换
    node加密rsa公钥和python解密私钥的问题
    html-pdf在centos上安装报错
    node.js 的knex 连接数据库表情编码问题
    node.js怎么调用lua脚本操作redis
    mongodb查询非空数组
    位运算
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136704.html
Copyright © 2011-2022 走看看