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