文档章节

java反射之成员变量的反射

1527
 1527
发布于 2015/10/11 22:38
字数 167
阅读 28
收藏 0

精选30+云产品,助力企业轻松上云!>>>

public class ReflectTest {

    public static void main(String[] args) throws Exception {
    
                //成员变量的反射
		ReflectPoint pt1 = new ReflectPoint(3, 5);
		Field fieldY = pt1.getClass().getField("y");
		System.out.println(fieldY.get(pt1));//5 因为y是公有属性,可以直接得到
		Field fieldX = pt1.getClass().getDeclaredField("x"); 
		fieldX.setAccessible(true);
		System.out.println(fieldX.get(pt1));//3 x是私有属性,使用getDeclaredField,然后setAcces                                                        sible(true)
		changeStringValue(pt1);
		System.out.println(pt1);//aall:aasketaall:itcast
    }
    private static void changeStringValue(Object obj) throws Exception {

		Field[] fields = obj.getClass().getFields();
		for(Field field :fields){
			if(field.getType()==String.class){
				String oldValue = (String) field.get(obj);
				String newValue = oldValue.replace('b', 'a');
				field.set(obj, newValue);
			}
		}
	}
}

public class ReflectPoint {

	private int x;
	public int y;
	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;
	}
	
        @Override
	public String toString(){
		
		return str1+":"+str2+":"+str3;
	}	
}



1527

1527

粉丝 9
博文 121
码字总数 51620
作品 0
成都
程序员
私信 提问
加载中
请先登录后再评论。
Java中的反射--Reflect

  在张孝祥老师的Java讲解中,学习到了Java反射的一部分知识,觉得有必要好好学习一下哈。 一、反射的理解 经典总结:反射就是把Java类中的各种成分映射成为相应的Java类 例如:一个Java类...

osc_lrwj5l7d
2019/04/14
4
0
java反射

学习目标  什么是反射  反射运行原理  了解反射机制的相关类  获取 class 对象的 3 种方式  通过反射获取构造方法并使用  通过反射获取成员变量并调用  通过反射获取成员方法并...

流川偑
2019/10/14
22
2
反射是框架设计的灵魂

定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为...

osc_n41kxg36
2019/07/10
4
0
java 反射(Reflection)-干货

看了很多关于java 反射的文章,自己把所看到的总结一下。对自己,对他人或多或少有帮助吧。 Java Reflection是什么? 首先来看看官方文档Oracle里面对Reflection的描述: Reflection is comm...

osc_7pd4z0cu
2018/04/18
19
0
什么时候Java反射

写的不是很详细,可能会有看不懂的地方,建议去慕课网的视频:https://www.imooc.com/video/3735 以前就学习过java的反射,但是后来一直没有用过,现在回过头来看了一下,并把知识点做了整理...

踏破铁鞋无觅处
2018/08/16
7
0

没有更多内容

加载失败,请刷新页面

加载更多

Node.js:无需尾随换行符即可打印到控制台? - Node.js: printing to console without a trailing newline?

问题: Is there a method for printing to the console without a trailing newline? 是否有一种无需尾随换行符即可打印到控制台的方法? The console object documentation doesn't say a......

javail
54分钟前
21
0
如何在屏幕底部对齐视图? - How to align views at the bottom of the screen?

问题: Here's my layout code; 这是我的布局代码; <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orien......

fyin1314
今天
16
0
微信小程序如何修改小程序名称

如何修改微信小程序的名称。 微信小程序是在 app.json 中定义的。 你可用修改 app.json 中的 navigationBarTitleText": “云开发 QuickStart”, 字段。 xiug修改后保存,你就可以看到小程序的...

honeymoose
今天
27
0
将符合ISO 8601的字符串转换为java.util.Date - Converting ISO 8601-compliant String to java.util.Date

问题: I am trying to convert an ISO 8601 formatted String to a java.util.Date . 我正在尝试将ISO 8601格式的String转换为java.util.Date 。 I found the pattern yyyy-MM-dd'T'HH:mm:s......

富含淀粉
今天
17
0
jQuery选择器中的通配符 - Wildcards in jQuery selectors

问题: I'm trying to use a wildcard to get the id of all the elements whose id begin with "jander". 我正在尝试使用通配符来获取id以“jander”开头的所有元素的id。 I tried $('#jand......

法国红酒甜
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部