Class类对象的方法补充
一.获得Class类的对象的四种方式:
1.getClass
-
.class
-
Class.forName()
-
Class.ClassLoader.getSystem…
二.Class类的相关方法:
1.cast(Object obj) 将一个对象强制转换成此 Class 对象所表示的类或接口。
2 .getAnnotations() 返回此元素上存在的所有注释。
3.getCanonicalName() 返回 Java Language Specification 中所定义的底层类的规范化名称。
4.getClasses() 返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口。
5.constructor相关方法:(1)boolean equals(Object obj) 将此 Constructor 对象与指定的对象进行比较
(2)getName() 以字符串形式返回此构造方法的名称。
方法运用的代码展示:
注意事项:a.代码运行环境:jdk1.8.0_131 b.编译工具:2018 Idea
源代码:
package com.liujie;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
/*
* Class中相关方法运用
* */
public class zyTest {
public static void main(String[] args) {
//cast(Object obj)
// 将一个对象强制转换成此 Class 对象所表示的类或接口。
String a=new String("hello");
Class clz=a.getClass();
Object aa="fasfds";
Object ob=clz.cast(aa);
System.out.println(ob.getClass());
//getAnnotations()
// 返回此元素上存在的所有注释。
Annotation[] arr=zyTest.class.getAnnotations();
for (Annotation annotation : arr) {
System.out.println(arr);
}
//getCanonicalName()
// 返回 Java Language Specification 中所定义的底层类的规范化名称。
String cname=clz.getCanonicalName();
System.out.println("cname:"+cname);
//getClasses()
// 返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口。
Class[] clzss=clz.getClasses();
for (Class aClass : clzss) {
System.out.println(aClass);
}
//constructor相关方法
Constructor constructor=null;
try {
constructor=String.class.getDeclaredConstructor(String.class);
System.out.println("constructor:"+constructor);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
//boolean equals(Object obj)
// 将此 Constructor 对象与指定的对象进行比较。
Boolean isequals=constructor.equals("String");
System.out.println(isequals);
//getName()
// 以字符串形式返回此构造方法的名称。
String ccname=constructor.getName();
System.out.println(ccname);
}
}
控制台结果: