java中int.Class和String.Class指啥,麻烦谁能详细解释一下。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中int.Class和String.Class指啥,麻烦谁能详细解释一下。相关的知识,希望对你有一定的参考价值。

它们是Class类型的对象。
关于Class类型,你参考下《JAVA核心技术》的描述:
程序在运行期间,JAVA运行时系统始终为所有对象维护一个被称为运行时的类型标识,这个信息保存这没个对象所属的类的足迹。虚拟机利用运行时信息选择相应的方法执行。
保存这些信息的类就是Class类
参考技术A 精简的说就是:int String 加上.class 后是一个类型,只不过通常在映射反射时使用。 参考技术B 后缀是class的是java源文件编译后的可执行文件。对于String.class这些是jdk提供的。可以理解为jdk提供的jar包支持。 参考技术C 后缀是class的是java源文件编译后的可执行文件。对于String.class这些是jdk提供的。可以理解为jdk提供的jar包支持。 参考技术D 数据类型的类,里面有处理自己数据类型的函数。

JAVA 反射 示例

摘自 b站尚硅谷JAVA视频教程

 

Class personC = Person.class;

        //1 利用反射创建Person类
        Constructor cons = personC.getConstructor(String.class,int.class);
        Object obj = cons.newInstance("tom",12);
        Person p = (Person) obj;
        System.out.println(p);

        //2 通过反射,调用对象指定的属性
        Field age = personC.getDeclaredField("age");
        age.set(p, 10);
        System.out.println(p);

        // 3 通过反射调用方法
        Method show = personC.getDeclaredMethod("show");
        show.invoke(p);
        //4 通过反射可以调用私有的构造器

        Constructor con1 = personC.getDeclaredConstructor(String.class);
        con1.setAccessible(true);
        Object obj1 = con1.newInstance("Jerry");
        Person p1 =(Person) obj1;
        System.out.println(p1);

        //5 通过反射调用私有属性
        Field name = personC.getDeclaredField("name");
        name.setAccessible(true);
        name.set(p1,"Sam");
        System.out.println(p1);
        //6 调用私有方法
        Method showNation = personC.getDeclaredMethod("showNation", String.class);
        showNation.setAccessible(true);
        String nation = (String) showNation.invoke(p1,"中国");
        System.out.println(nation);

 

以上是关于java中int.Class和String.Class指啥,麻烦谁能详细解释一下。的主要内容,如果未能解决你的问题,请参考以下文章

java 类字面常量,泛化的Class引用

Integer和int.class分别是啥

如何将 Integer.class (和其他盒装)转换为 int.class (和其他原语)?

请问下,C#的泛型数组中的 ToDictionary 方法怎么用? 详细说明请进。。

java基础 数组类型

动态查找表示原始 Java 类型的类