Java在利用反射条件下替换英文字母中的值

时间:2022-09-02 20:16:46

java在利用反射条件下替换英文字母中的值

(1)创建两个class:

reflecttest类如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package cn.itcast.day01;
import java.lang.reflect.constructor;
import java.lang.reflect.field;
public class reflecttest {
 public static void main(string[] args) throws exception {
 changestringvalue(pt1);
 system.out.println(pt1);
 }
 private static void changestringvalue(object obj) throws exception{
 field[] fields = obj.getclass().getfields();
 for(field field :fields){
  //if(field.gettype().equals(string.class)){
  if(field.gettype() == string.class){ //同一个字节码用等号 而不是用equal
  string oldvalue = (string) field.get(obj);
  string newvalue = oldvalue.replace('b','a');
  field.set(obj, newvalue);
  }
 }
 }
}

reflectpoint类如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package cn.itcast.day01;
public class reflectpoint {
 public string str1 = "ball";
 public string str2 = "basketball";
 public string str3 = "itcast";
 public reflectpoint(int x, int y) {
 super();
 this.x = x;
 this.y = y;
 }
 public string tostring(){
 return str1+":"+str2+":"+str3;
 }
 public static void main(string[] args) {
 // todo auto-generated method stub
 }
}

结果为:aall:aasketaall:itcast

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接