189 8069 5689

java反射更改代码 java反射method invoke

利用java反射改一下任意对象的属性值的编码。比如说Student对象的name值原来是GBK的,然后改成utf-8的

只要不是final的,都可以改

创新互联公司基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业绵阳电信机房机柜租用,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

问题是,编码不能改。

java内部都是unicode编码。

输出默认都是utf8

你要是想改编码,就在输出的时候重新编码一下就可以了。不用反射。

用java实现类和对象的反射,代码最好有注释,谢谢

给你一个小的实例代码:

import java.lang.reflect.Method;

import java.lang.reflect.InvocationTargetException;

public class test {

public static void main(String args[]) throws NoSuchMethodException,

IllegalAccessException, InvocationTargetException {

Foo foo = new Foo("这个一个Foo对象!");

Class clazz = foo.getClass();

Method m1 = clazz.getDeclaredMethod("outInfo");

Method m2 = clazz.getDeclaredMethod("setMsg", String.class);

Method m3 = clazz.getDeclaredMethod("getMsg");

m1.invoke(foo);

m2.invoke(foo, "重新设置msg信息!");

String msg = (String) m3.invoke(foo);

System.out.println(msg);

}

}

class Foo {

private String msg;

public Foo(String msg) {

this.msg = msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

public String getMsg() {

return msg;

}

public void outInfo() {

System.out.println("这是测试Java反射的测试类");

}

}

JAVA反射机制代码

1.就是说根据你传进去的对象类型返回相应的代理。这个不是在静态编译时决定的, 而是运行时决定的,所以叫做动态。this指的是当前InvocationHandler对象,也就是new MyInvocationHandler()出来的。

2.执行RealSubject中的say方法,因为这个时候实际的对象是bind(new RealSubject())。

3.没有调用自己啊。


新闻标题:java反射更改代码 java反射method invoke
分享URL:http://cdxtjz.cn/article/ddihdeo.html

其他资讯