课程名称:反射
课程章节:第四章
主讲老师:Cedar
课程内容:
//java获取成员变量构造函数信息
/**
* 成员变量也是对象
* java.lang.reflect.Field
* Field类封装了关于成员变量的操作
*/
public class methodDemo {
public static void main(String[] args) {
printFieldMethod("hello");
}
static void printFieldMethod(Object obj) {
Class c = obj.getClass();
/**
* 成员变量也是对象
* java.lang.reflect.Field
* Field类封装了关于成员变量的操作
* getFields 获取的是所有public的成员变量的信息
* getDeclaredFields 获取的是该类自己声明的成员变量的信息
*/
// Field[] fs = c.getFields();
Field[] fs = c.getDeclaredFields();
for (Field field : fs){
// 得到的成员变量的类型的类类型
Class fieldType = field.getType();
String typeName = fieldType.getName();
//得到成员变量的名称
String fieldName = field.getName();
System.out.println(typeName + "---------" + fieldName);
}
}
/**
* 打印对象的构造函数的信息
*/
public static void printConMessage(Object obj){
Class c = obj.getClass();
/**
* 构造函数也是对象
* java.lang.Constructor中封装了构造函数的信息
*/
// Constructor[] cs = c.getConstructors();
Constructor[] cs = c.getDeclaredConstructors();
for (Constructor constructor :cs){
System.out.println(constructor.getName());
//获取构造函数的参数列表
Class[] parameterTypes = constructor.getParameterTypes();
for (Class class1 : parameterTypes){
System.out.println(class1.getName() +",");
}
}
}
}课程收获:
这节主要学习了获取成员变量构造函数信息,因为成员变量也是对象,隶属于java.lang.reflect.Field,而Field类封装了关于成员变量的操作,所以这些东西还是需要知道的,这些东西的话,我感觉我用到的话很难,但是之后遇到这样的代码,我可以看懂,也可以运用。而且这章顺带还打印了构造函数,学到的东西还是非常多的,很多没有接触到的。
革命尚未成功,同志还需努力。

随时随地看视频