java Class类的用法示例

时间:2022-01-29 22:13:28
    @SuppressWarnings("unchecked")
    public void func() throws InstantiationException, IllegalAccessException, ClassNotFoundException{
        Class<String> obj = (Class<String>) Class.forName("java.lang.String");
        String str = obj.newInstance();
        str = "123";
        System.out.println(str);
    }

Class类在java.lang包,本身是public final class Class<T>,说明是一个泛型类,有一个类型参数T,它就是这个T类型的类型标识。Final类是不能被继承的。

这是Class类的toString方法,写得比较有艺术:

public String toString() {
        return (isInterface() ? "interface " : (isPrimitive() ? "" : "class "))
            + getName();
}

反正都打印出getName(),不过接口会加上interface,类会加上class,原始类型不加东西。

Class里面的forName类是static的,内部用ClassLoader加载String参数指明的类,加载完成后,返回值正是Class<?>。  

第一段代码里的obj.newInstance相当于new String();

未完待续