反射之Field
来源:互联网 发布:营销网络的建设 编辑:程序博客网 时间:2024/04/30 02:09
package com.ncs;
public class Point {
private int x;
public int y;
public Point(int x, int y) {
super();
this.x = x;
this.y = y;
}
}
package com.ncs;
import java.lang.reflect.Field;
//need another bean Point
public class ReflectTest {
//★这里说的Field都是 类 身上的,不是实例上的
public static void main(String[] args) throws Exception {
Point pt1 = new Point(3,5);
//得到一个字段
Field fieldY = pt1.getClass().getField("y"); //y 是变量名
//fieldY的值是5么?? 大错特错
//fieldY和pt1根本没有什么关系,你看,是pt1.getClass(),是 字节码 啊
//不是pt1对象身上的变量,而是类上的,要用它取某个对象上对应的值
//要这样
System.out.println(fieldY.get(pt1)); //这才是5
//现在要x了
/*
Field fieldX = pt1.getClass().getField("x"); //x 是变量名
System.out.println(fieldX.get(pt1));
*/
//运行 报错 私有的,找不到
//NoSuchFieldException
//说明getField 只可以得到 公有的
//怎么得到私有的呢??
/*
Field fieldX = pt1.getClass().getDeclaredField("x"); //这个管你公的私的,都拿来
//然后轮到这里错了
// java.lang.IllegalAccessException:
//Class com.ncs.ReflectTest can not access a member of class com.ncs.Point with modifiers "private"
System.out.println(fieldX.get(pt1));
*/
//三步曲 一是不让你知道我有钱 二是把钱晃一下,不给用 三是暴力抢了
//暴力反射
Field fieldX = pt1.getClass().getDeclaredField("x"); //这个管你公的私的,都拿来
fieldX.setAccessible(true);//上面的代码已经看见钱了,开始抢了
System.out.println(fieldX.get(pt1));
//out 3 OK!!
}
}
package com.ncs;
public class Point {
private int x;
public int y;
public String s1 ="ball";
public String s2="hubin";
public String s3="zhangxiaoxiang";
//做实验而已,字段不可能是 public 的
public Point(int x, int y) {
super();
this.x = x;
this.y = y;
}
}
---------------------------
来自网页的消息
---------------------------
代码已被复制到剪贴板
---------------------------
确定
---------------------------
- 反射之Field
- java反射之-Field
- java反射之Field
- Java反射系列之Field
- Java反射之Field用法
- JAVA反射系列之Field
- Java反射之Field用法
- JAVA反射系列之Field----------java.lang.reflect.Field使用方法。
- Java反射之Field(一)
- Java反射之Class,Constructor,Field
- 深入学习Java反射之道-field
- 反射--Field
- 反射-Field
- 反射Field
- 黑马程序员——反射之Field类 成员变量
- 黑马程序员_Java高新技术之反射 Field类
- JavaSE_反射机制之Field的方法详解
- JAVA反射系列之Field,java.lang.reflect.Field使用获取方法。
- java设计模式(2):工厂方法模式(Factory Method)
- IO-03. 求整数均值(10)
- C语言free函数的原理————【Badboy】
- 特殊的线性表-队列的定义及基本运算
- 链表小练习
- 反射之Field
- ios 绘制虚线 CGContextSetLineDash的使用
- Android 属性总结
- 最具变革的电子地图开发
- HDU 1002 A + B Problem II
- HTML5 02 音视频介绍
- 黑马程序员--【强哥笔记】系列之Java高新技术笔记之JavaBean内省(第4天)
- Android 界面绘制实现
- 比较两个数大小汇编解析