reflect中属性field的小应用
来源:互联网 发布:迈卡威新秀数据 编辑:程序博客网 时间:2024/06/05 12:00
package com.foundation.reflect;
import java.lang.reflect.Field;
/**
*
* 反射中的学习,目的,将一个类中的String的value。中有“b”的全部替换成“a”
*
*/
public class ReflectDemo {
// 定义属性
public String name;
public String hobby;
public ReflectDemo(){}
public ReflectDemo(String name,String hobby) {
this.name = name;
this.hobby=hobby;
}
public void reflectMethod(Object targetObj) throws IllegalArgumentException, IllegalAccessException{
//获得目标反射类的所有属性
//Field[] fields=targetObj.getClass().getFields();
/**此两种方法都是获取一个对象所有的属性的一个数组,上者只能访问public修饰的属性,
* 获取不到private修饰的属性,而下者故名思议是声明了的属性,因此能够访问到private修饰的属性*/
Field[] fields=targetObj.getClass().getDeclaredFields();
for (Field field : fields) {
//两个字节码相比较用==最好,判断是不是String类型
if(field.getType()==String.class){
String oldValue=field.get(targetObj).toString();
String newValue=oldValue.replace("d", "a");
//将替换过后的值,重行赋值
field.set(targetObj, newValue);
}
}
}
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
ReflectDemo reflect=new ReflectDemo("david", "dddddd");
reflect.reflectMethod(reflect);
System.out.println("name="+reflect.name+",hobby="+reflect.hobby);
//result:name=aavia,hobby=aaaaaa
}
}
import java.lang.reflect.Field;
/**
*
* 反射中的学习,目的,将一个类中的String的value。中有“b”的全部替换成“a”
*
*/
public class ReflectDemo {
// 定义属性
public String name;
public String hobby;
public ReflectDemo(){}
public ReflectDemo(String name,String hobby) {
this.name = name;
this.hobby=hobby;
}
public void reflectMethod(Object targetObj) throws IllegalArgumentException, IllegalAccessException{
//获得目标反射类的所有属性
//Field[] fields=targetObj.getClass().getFields();
/**此两种方法都是获取一个对象所有的属性的一个数组,上者只能访问public修饰的属性,
* 获取不到private修饰的属性,而下者故名思议是声明了的属性,因此能够访问到private修饰的属性*/
Field[] fields=targetObj.getClass().getDeclaredFields();
for (Field field : fields) {
//两个字节码相比较用==最好,判断是不是String类型
if(field.getType()==String.class){
String oldValue=field.get(targetObj).toString();
String newValue=oldValue.replace("d", "a");
//将替换过后的值,重行赋值
field.set(targetObj, newValue);
}
}
}
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
ReflectDemo reflect=new ReflectDemo("david", "dddddd");
reflect.reflectMethod(reflect);
System.out.println("name="+reflect.name+",hobby="+reflect.hobby);
//result:name=aavia,hobby=aaaaaa
}
}
- reflect中属性field的小应用
- datagrid中field 对象的属性
- java reflect Field
- Android reflect field
- java.lang.reflect.Field
- java-day03-reflect-Field
- 关于reflect的应用方法
- 关于java.lang.reflect.Field 和 java.lang.reflect.Method 的问题 - hzalan的专栏 - CSDNBlog
- 关于java.lang.reflect.Field 和 java.lang.reflect.Method 的问题
- ACCESS数据库中Field对象的caption属性读写
- JSLink文件中使用field的自定义属性
- lucene/solr 中Field类(域)的常用类型,以及Field属性解析
- lucene/solr 中Field类(域)的常用类型,以及Field属性解析
- Lucence的Field属性整理
- ibatis 中$field$与#field#的区别
- java反射(Field的应用)
- Lucene-Field.Store的Field.Index属性笔记
- c#中属性的应用
- 有关51特长长假前之二——scrapy[2012.5.17]
- iPhone development folders
- 暗时间--平凡与优秀间的距离
- Js动态创建页面元素.txt
- 程序员的十个层次 你属于哪一层?
- reflect中属性field的小应用
- objective-c 中的category 与Protocol 用法解释
- 用Dreamweaver8学习网页滚动字幕的制作
- 利用PorterDuff.Mode做橡皮擦效果
- Android 绑定类型服务---其他注意事项
- 浅析Windows操作系统中的线程局部存储(TLS)机制
- How to write Assembly code for the iPhone:
- 计算机科学中各种树结构
- python字符串的操作——python cookbook