Java、Scala获取Class实例

Java获取Class实例的四种方式

package com.test;

/**
 * @description: TODO
 * @author: HaoWu
 * @create: 2020/7/22 10:39
 */
public class A {
    public static void main(String[] args) throws ClassNotFoundException {
        //1.类名.class
        Class clazz1 = A.class;
        //2.对象名.getClass()
        A a = new A();
        Class clazz2 = a.getClass();
        //3.Class.forName(全类名)
        Class clazz3 = Class.forName("com.test.A");
        //4.通过类的加载器
        ClassLoader classLoader = this.getClass().getClassLoader();
        Class clazz4 = classLoader.loadClass("com.test.A");
    }
}

Scala获取Class实例

classOf[A] 类A的类型
a.getClass 对象a的类型,多态情况获取的是对象的类型,不是父类类型

    val a : A = new B
    val type1_A = classOf[A].getName //com.bigdata.scala.day01.$08_Param$A
    val type2_A = a.getClass.getName //com.bigdata.scala.day01.$08_Param$B
    
    class A
    class B extends A
posted @ 2020-07-22 19:26  来自遥远的水星  阅读(1896)  评论(0编辑  收藏  举报