网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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
网页地址:http://bjjierui.cn/article/ddihdeo.html

其他资讯