通过反射改变类中的成员变量

    技术2022-05-20  32

    1. 如何通过反射机制把变量a="apple"、b="pig" 中的"p"字母换成b?

    public  class A{

     

        public String a="apple";

        public String b="pigs";

       @override

       public String toString(){

           System.out.println(a+","+b);

       }

    }

     

    方法:

     

    public class B{

      

     

         public static void main(String[] args ){

               A  a=new A();

               changeA(a);

              System.out.pringln(a);

         }

        

        public static void changeA(Object obj){

              Fields[]  fields=obj.getClass().getFields();//获取A类中的成员变量

              for(Field  field : fields ){//遍历成员变量

                     if(field.getType()==String.class()){ //判断变量为String类型

                            String oldValue=(String)field.get(obj);

                            String newValue=oldValue.replace("p","b");

                             field.set(obj,newValue);

                            

                       }

     

     

              }

        }

     

    }


    最新回复(0)