class A{
public B b;
get;set;
}
class B{
private int i;
get;set;
}
public static void main(String[] args) {
List list=new ArrayList();
A a = new A();
B b=new B();
b.setI(1);
a.setB(b);
list.add(a);
A a1 = new A();
B b1=new B();
b1.setI(11);
a1.setB(b1);
list.add(a1);
//取值的时候传这个list 以及一个属性名的list。
}
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Test{
public static void main(String[] args) {
A a1 = new A();
B b1 = new B();
a1.setB(b1);
b1.setI(1);
A a2 = new A();
B b2 = new B();
a2.setB(b2);
b2.setI(2);
List list= new ArrayList();
list.add(a1);
list.add(a2);
Iterator it = getValueInList(list,"b","i").iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
public static List getValueInList(List list,String field,String name){
List l = new ArrayList();
Iterator it = list.iterator();
while(it.hasNext()){
l.add(getValueInField(it.next(),field,name));
}
return l;
}
public static Object getValueInField(Object obj,String field,String name){
try {
Field f1 = obj.getClass().getDeclaredField(field);
f1.setAccessible(true);
Object o = f1.get(obj);
Field f2 = o.getClass().getDeclaredField(name);
f2.setAccessible(true);
return f2.get(o);
} catch (Exception e) {
System.out.println("查找失败");
return null;
}
}
}
class A{
private B b;
public void setB(B b){
this.b=b;
}
}
class B{
private int i;
public void setI(int i){
this.i = i;
}
}
//查参数只需要用参数名,不应该通过类型查找,反编译文件很容易得到需要的参数名
java反射获取一个实体类中的另外一个实体类中属性的值,两个实体类是...
class Test{ public static void main(String[] args) { A a = new A();System.out.println(getValueInField(a,"b1","i"));System.out.println(getValueInField(a,"b2","i"));System.out.println(getValueInField(a,"b3","i"));} public static Object getValueInField(Object obj,Str...
java中如何通过反射获取类的属性
fieldValue=field.get(obj);\/\/\/这个就是属性的值
java中如何遍历实体类的属性和数据类型以及
可以通过反射获取到属性方法信息:public class User { private int id; private String name; private double amount; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } ...
使用Java反射将一个对象复制到另一个对象
在开发过程中,我们时常需要将一个对象的属性复制到另一个对象。最常见的做法是逐个属性地调用get和set方法。然而,这种方法显得繁琐且易出错。为解决这一问题,可以使用诸如BeanUtils.copyProperties方法或Spring和Apache提供的工具类。这两种方法操作简便,只需确保调用时源对象和目标对象的顺序正确。BeanUtils....
java如何利用反射机制得到一个类中为数组类型的成员变量的值
}public void setAge(int age) {this.age = age;}public String[] getAiHao() {return aiHao;}public void setAiHao(String[] aiHao) {this.aiHao = aiHao;}}对学生类进行反射 public class Test3 {public static void main(String[] args) {Student s = new Student();s.setId(1);s....
JAVA中的反射和反射机制到底是什么啊?
Java reflection 非常有用,它使类和数据结构能按名称动态检索相关信息,并允许在运行着的程序中操作这些信息。Java 的这一特性非常强大,并且是其它一些常用语言,如 C、C++、Fortran 或者 Pascal 等都不具备的。 但反射有两个缺点。第一个是性能问题。用于字段和方法接入时反射要远慢于直接代码。性能问题的程度取决...
JAVA中反射是什么
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。Java反射的功能是在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意...
在一个类中如何调用另一个类的私有方法
该借的能借.不能借的打死接不到..当然.这私有方法就和媳妇一样..不管是谁..就是java他爸来也是没法访问私有的方法..所以.你在反射.也不行..这压根和注释都没有关系...老大私有是啥概念.就是自己的东东..你要知道..媳妇能公有么?媳妇就是private的..那不是小姐.小姐是public的 ...
java中如何取到一个对象的所有属性值,并且在创建一个相同的对象
对象的类不知道,里面属性的类型也不知道。我感觉我没救了 用反射机制吧,很轻松!比如说:只知道对象a,问你要a里面所有属性值 问题补充:udvs 写道a.getClass().getDeclaredFields()哥们,我要的是值,不是属性名,而且是私有的成员,公有的我能得到 问题补充:izhangh 写道 public static Object...
java比较实体类
这种情况你可以使用反射去写一个通用的方法,不过前提是你的那些实体类都是简单的包装类,稍后奉上代码。代码如下:package pojo;\/** * Created by liaokai on 2017\/11\/17 0017. *\/public class Person { private String name; private int age; public Person(String name, int age)...