您好,提问者:
如果类中的属性,不对外提供public、default和protected的方法是无法对普通类或者子类访问的。
不过有种技术可以通过反射加载出这些类的属性。
Class class1=Aclass;//需要检测的类
String fieldname="name";//需要检测的属性名称
/
循环遍历所有的元素,检测有没有这个名字
/
Field[] fields=class1getDeclaredFields();
boolean b=false;
for (int i = 0; i < fieldslength; i++) {
if(fields[i]getName()equals(fieldname))
{
b=true;
break;
}
}
if(b)
Systemoutprintln("有改属性");
else
Systemoutprintln("没有改属性");
给你一段属性反射的代码,你自己看着改吧
Field[] fs = userClagetDeclaredFields();for(int i = 0 ; i < fslength; i++){
Field f = fs[i];
fsetAccessible(true); //设置些属性是可以访问的
Object val = fget(bean);//得到此属性的值
Systemoutprintln("name:"+fgetName()+"\t value = "+val);
String type = fgetType()toString();//得到此属性的类型
if (typeendsWith("String")) {
Systemoutprintln(fgetType()+"\t是String");
fset(bean,"12") ; //给属性设值
}else if(typeendsWith("int") || typeendsWith("Integer")){
Systemoutprintln(fgetType()+"\t是int");
fset(bean,12) ; //给属性设值
}else{
Systemoutprintln(fgetType()+"\t");
}
}
基本就是getType()之后,根据type的类型来反射
以上就是关于类中私有属性不提供get和set方法怎么调用全部的内容,包括:类中私有属性不提供get和set方法怎么调用、java检测对象中是否存在某个属性、java 反射 数据类型转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)