
使用反射可以获取到;
代码如下:
import javalangreflectField; //这是需要引入的包Field[] f = 类名classgetDeclaredFields(); //获取该类的字段(public, protected, default (package) access, and private)for(Field ff:f) //遍历字段
{
Systemoutprintln(ffgetType()); //获取字段类型
Systemoutprintln(ffgetName()); //获取字段名
}
反射不是通过get取值的,是通过该对象的信息,比如说名称、内存地址等来访问类,方法,属性等,可以获取任意对象的信息,但不能获得私有属性(private String s=“sd”;)的值,切记
推荐《JAVA核心技术》这本书会对你有帮助的
把这个方法写在基类
public void getFields() {Class<> cls = getClass();
for (; cls != Objectclass; cls = clsgetSuperclass()) {
Field[] fs = clsgetDeclaredFields();
for (Field f : fs) {
Systemoutprintln(fgetName());
}
}
}
for (int i = 0; i < fieldslength; i++) {
Field field = fields[i];
String fieldName = fieldgetName();
Systemoutprintln("name====="+fieldName);
String firstLetter = fieldNamesubstring(0, 1)toUpperCase();
// 获得和属性对应的getXXX()方法的名字
String getMethodName = "get" + firstLetter + fieldNamesubstring(1);
// 获得和属性对应的getXXX()方法
Method getMethod = classTypegetMethod(getMethodName, new Class[]{});
// 调用原对象的getXXX()方法
Object value = getMethodinvoke(object, new Object[]{});
Systemoutprintln("value===="+value);
}
Class<> clazz = refgetClass();
Method method=clazzgetMethod("getLength");
Systemoutprintln(methodinvoke(ref));
以上就是关于Java如何获得一个类里面的各个属性和类型全部的内容,包括:Java如何获得一个类里面的各个属性和类型、java反射取对象属性值 不是通过get方法取值、java中如何获取类的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)