我这种情况,怎么用反射,大侠帮忙 我现在是有两个javaBean 比如 Employee和Factory,我在主函数里面创建两个它们的对象,给属性赋值。因为它们都是放在List里面的(list里面只放它们之一),因为取出来的对象不确定,所以要用反射取他们的对象和对应的属性值,这样该怎么弄啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Objecto = list.get(0);if(o instanceof Employee){ Employee e = (Employee)o; ......}else if(o instanceof Factory){ Factory f = (Factory)o; ......} 取出来的对象不确定?Object object = list.get(i);if (object instanceof new Employee){ Employee employee = (Employee)object employee.set(); ....} 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; }} 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))); } }} JAVA 爱好者加群 38236097JAVA 爱好者加群 38236097 Java中的键盘监听 问一个关于多线程之间读写结束通知的问题 javaEE/web /osgi 朋友,有性趣的请加QQ群72207201.大家一起学习一起进步! visitor模式和bridge模式,到底区别在哪里? 遇见一种诡异的Java写法 关于split()的一个比较棘手的问题 问一个关于java进程的问题 cvs使用的问题 一个关于文本操作和appletviewer的问题 高手:我看不懂了 JAVASCRIPT 写一个验证 最的一个JAVA编码问题,我都要疯了,请大家帮我看看吧。
if(o instanceof Employee){
Employee e = (Employee)o;
......
}else if(o instanceof Factory){
Factory f = (Factory)o;
......
}
if (object instanceof new Employee)
{
Employee employee = (Employee)object
employee.set();
....
}
{
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;
}
}
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)));
}
}}
JAVA 爱好者加群 38236097