JAVA反射获取类的属性及类型
2012-03-07 07:55
381 查看
通过反射获取类属性字段 以及 调用类方法
public class ModelClassHelper {
public static HashMap<String,Class> init(String classPath)
{
try {
//"com.geocompass.model.STSTBPRPModel"
HashMap<String,Class> fieldHashMap=new HashMap<String,Class>();
Class cls = Class.forName(classPath); //com.geocompass.model.STSTBPRPModel
Field[] fieldlist = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
fieldHashMap.put(fld.getName(), fld.getType());
// System.out.println("name = " + fld.getName());
// System.out.println("decl class = " + fld.getDeclaringClass());
// System.out.println("type = " + fld.getType());
// System.out.println("-----");
}
return fieldHashMap;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static String getTableName(String classPath)
{
try {
Class cls = Class.forName(classPath);
Method test=cls.getDeclaredMethod("getTableName" );
Object invoke = test.invoke(cls.newInstance());
return invoke.toString();
//cls.asSubclass(TabModel.class);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}}
import java.lang.reflect.Field;
public class TestEntity {
private String code;
private String name;
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return this.code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException
{
TestEntity obj = new TestEntity();
obj.setName("name value");
obj.setCode("code value");
Field[] fds = Class.forName
("org.apache.easframework.core.entity.impl.TestEntity").getDeclaredFields();
System.out.println(fds.length);
for(int i=0;i<fds.length;i++)
{
System.out.println(fds[i].get(obj));
}
}
}
转载自:http://blog.csdn.net/wpcxyking/article/details/6139549
public class ModelClassHelper {
public static HashMap<String,Class> init(String classPath)
{
try {
//"com.geocompass.model.STSTBPRPModel"
HashMap<String,Class> fieldHashMap=new HashMap<String,Class>();
Class cls = Class.forName(classPath); //com.geocompass.model.STSTBPRPModel
Field[] fieldlist = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
fieldHashMap.put(fld.getName(), fld.getType());
// System.out.println("name = " + fld.getName());
// System.out.println("decl class = " + fld.getDeclaringClass());
// System.out.println("type = " + fld.getType());
// System.out.println("-----");
}
return fieldHashMap;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static String getTableName(String classPath)
{
try {
Class cls = Class.forName(classPath);
Method test=cls.getDeclaredMethod("getTableName" );
Object invoke = test.invoke(cls.newInstance());
return invoke.toString();
//cls.asSubclass(TabModel.class);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}}
利用反射技术动态获取任意Java类实例的属性值
package org.apache.easframework.core.entity.impl;import java.lang.reflect.Field;
public class TestEntity {
private String code;
private String name;
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return this.code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException
{
TestEntity obj = new TestEntity();
obj.setName("name value");
obj.setCode("code value");
Field[] fds = Class.forName
("org.apache.easframework.core.entity.impl.TestEntity").getDeclaredFields();
System.out.println(fds.length);
for(int i=0;i<fds.length;i++)
{
System.out.println(fds[i].get(obj));
}
}
}
转载自:http://blog.csdn.net/wpcxyking/article/details/6139549
相关文章推荐
- java反射遍历实体类属性和类型,并赋值和获取值的简单方法
- java反射获取类的类名、属性名、属性类型、方法、执行方法、构造函数
- java反射遍历实体类属性和类型,并赋值和获取值
- 通过java类的反射机制获取类的属性类型
- java利用反射获取类的属性及类型
- java反射遍历实体类属性和类型,并赋值和获取值的简单方法
- java反射遍历实体类属性和类型,并赋值和获取值
- 利用Java反射根据属性名获取对象值和类型代码
- java反射遍历实体类属性和类型,并赋值和获取值
- 通过java类的反射机制获取类的属性类型
- Python面向对象,类,继承,多态及鸭子类型,获取类的类型,方法和属性(类似java的反射)
- java通过反射获取字段的类型
- 【分享】java反射获取、设置、打印对象属性,对象转map基础工具
- java反射获取实体类的属性名和值通过POI导出EXCEl,并实现表格列宽度自适应
- Java反射通过class获取父类泛型类型
- Java反射获取属性问题
- Java反射《三》获取属性
- Java反射,根据类名创建带参数的实例(获取参数类型,参数等)
- 利用java反射获取泛型类的类型参数具体类对象
- 反射获取属性类型