java 反射 field类型_JAVA反射机制 通过反射 Field类获取和修改对象类的字符串值...

本文介绍了如何使用JAVA反射机制,通过Field类来获取和修改对象类中的字符串值。示例代码展示了如何获取字段值、设置字段的可访问性以及遍历对象的所有字段,查找并修改特定类型的字符串值。
摘要由CSDN通过智能技术生成

ReflecClassPoint01.java

package com.sg.reflex;

public class ReflecClassPoint01 {

private int x;

public int y ;

public String str1 = "ball";

public String str2 = "basketball";

public String str3 = "itcast";

public ReflecClassPoint01() {

super();

}

public ReflecClassPoint01(int x, int y) {

this.x = x;

this.y = y;

}

@Override

public String toString() {

return str1 + ":" + str2 + ":" + str3 ;

}

}

测试ReflecClassPointTest.java

package com.sg.reflex.test;

import java.lang.reflect.Field;

import com.sg.reflex.ReflecClassPoint01;

public class ReflecClassPointTest {

public static void main(String[] args) throws Exception{

ReflecClassPoint01 p = new ReflecClassPoint01(3, 5);

Field fieldY = p.getClass().getField("y");

//fieldY 的值是?

System.out.println(fieldY.get(p));

Field fieldX = p.getClass().getDeclaredField("x");

//将此对象的 accessible 标志设置为指示的布尔值

fieldX.setAccessible(true);

System.out.println(fieldX.get(p));

chageStringValue(p);

System.out.println(p);

}

private static void chageStringValue(Object obj) throws Exception{

Field[] fields = obj.getClass().getFields();

for (Field field : fields) {

//field.getType();

//与字节码作比较用== 假如是String的字节码

if (field.getType() == String.class) {

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

//把小写的b换成大写B

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

field.set(obj, newValue);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值