类中私有属性不提供get和set方法怎么调用

类中私有属性不提供get和set方法怎么调用,第1张

您好,提问者:

如果类中属性,不对外提供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 反射 数据类型转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9418268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存