我现在是有两个javaBean 比如 Employee和Factory,我在主函数里面创建两个它们的对象,给属性赋值。因为它们都是放在List里面的(list里面只放它们之一),因为取出来的对象不确定,所以要用反射取他们的对象和对应的属性值,这样该怎么弄啊。

解决方案 »

  1.   

    Objecto = list.get(0);
    if(o instanceof Employee){
     Employee e = (Employee)o;
     ......
    }else if(o instanceof Factory){
     Factory f = (Factory)o; 
     ......
    }
      

  2.   

    取出来的对象不确定?Object object = list.get(i);
    if (object instanceof new Employee)
    {
      Employee employee = (Employee)object
      employee.set();
      ....
    }
      

  3.   

    public class TestReflect
    {
    public static void main(String[] args) throws SecurityException, IllegalArgumentException, IllegalAccessException
    {
    java.util.List list=new java.util.ArrayList();
    Employee employee=new Employee("雇员甲");
    Factory factory=new Factory("工厂甲");
    list.add(employee);
    list.add(factory);
    for(java.util.Iterator i=list.iterator();i.hasNext();)
    {
    Object temp=i.next();
    System.out.println("类名 :"+temp.getClass().getName());
    java.lang.reflect.Field[] fields=temp.getClass().getDeclaredFields();
    for(int ii=0;ii<fields.length;ii++)
    {
    System.out.println(fields[ii].getName()+" :"+fields[ii].get(temp));
    }
    System.out.println("________________________________________");
    }
    }
    }class Employee
    {
    String employeeName;
    Employee(String employeeName)
    {
    this.employeeName=employeeName;
    }
    }class Factory
    {
    String factoryName;
    Factory(String factoryName)
    {
    this.factoryName=factoryName;
    }
    }
      

  4.   

    import java.util.ArrayList;
    import java.util.List;
    import java.lang.reflect.Method;
    import java.lang.reflect.Field;class Employee{
    public static final String CLASS_NAME="employee";
    private String id;
    private String name;
    /**
     * @return id
     */
    public String getId() {
    return id;
    }
    /**
     * @param id 要设置的 id
     */
    public void setId(String id) {
    this.id = id;
    }
    /**
     * @return sex
     */
    public String getName;
    /**() {
    return sex;
    }
    /**
     * @param sex 要设置的 sex
     */
    public void setName(String name) {
    this.name = name;
    }

    }
    class Factory {
    public static final String CLASS_NAME="factory";
    public String factoryName = null; public String factoryId = null;

    public String getFactoryName() {
    return factoryName;
    } public void setFactoryName(String factoryName) {
    this.factoryName = factoryName;
    } public String getFactoryId() {
    return factoryId;
    } public void setFactoryId(String factoryId) {
    this.factoryId = factoryId;
    }
    }public class RefObject {
    public static String getType(Object o){
    Field[] f=o.getClass().getDeclaredFields();
    String type="";
    for(int i=0;i<f.length;i++){
    if("CLASS_NAME".equals(f[i].getName())){
    try {
    type=f[i].get("CLASS_NAME").toString();
    } catch (IllegalArgumentException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    break;
    }
    }
    return type;
    }
    public static String getTypeOther(Object o){
    if(o instanceof Employee)
    return "employee";
    else if(o instanceof Factory)
    return "factory";
    else
    return "未知类型";
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO 自动生成方法存根
    List list=new ArrayList();
    list.add(new Factory());
    list.add(new Employee());
    for(int i=0;i<list.size();i++){
    System.out.println(getType(list.get(i)));
    }
    }}
      

  5.   

    JAVA 爱好者加群  38236097
    JAVA 爱好者加群  38236097