例如public class Test1{
private int id;
private String name;
private Date birthday; ...
// getter和setter方法省略了
}public class Test2{
public static void main(String[] args){
Test1 t1=new Test1();
// 在这里,如何得到 t1对象中 id的属性是int,name的属性是String,birthday的属性是Date ?
}
}
private int id;
private String name;
private Date birthday; ...
// getter和setter方法省略了
}public class Test2{
public static void main(String[] args){
Test1 t1=new Test1();
// 在这里,如何得到 t1对象中 id的属性是int,name的属性是String,birthday的属性是Date ?
}
}
有现成的工具可以用的,不用自己写代码了。
我记得好像是bean-util之类的名字
Object s = "123";
if (s instanceof String) {
System.out.println("s is String");
} int i = 2;
String str = "0";
str += i;
System.out.println(str);
if (str.matches("[0-9]+")) {
System.out.println("i is a int!");
}
}}希望以上代码能够帮到你
你的方法我试过了,还是解决不了问题!
主要是 我的Test1是实体类,和后台做ORM实体映射。。
Test te =new Test();
Field fs[]= te.getClass().getDeclaredFields();
for(Field ff:fs)
{
System.out.println(ff.getType());
}
哪位大侠教你的,直接对他BeanUtils.populate(obj) --> Map<String, String>类型的名-值映射
PropertyUtils.popluate(obj) --> Map<String, Object>,也就是原始字段类型
.getClass().getName() 返回的是String,仅仅是类名,我还是不能访问属性啊..
比如说
Test1的private int id;这个变量,那么就可以 String str = "0";
str += Test1.getId();
if (str.matches("[0-9]+")) {
System.out.println("Test1.id is a int!");
}
for (Method mm : m) {
System.out.println(mm.getName()+" - " +mm.getReturnType());
}
Field[] tv = tb.getClass().getDeclaredFields();
for (Field t : tv) {
System.out.println("dataType = " + t.getType());
}
package com.neusoft.util;import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.util.Calendar;public class LogMessage { public static String logObject(Object bean)
throws IllegalArgumentException, IllegalAccessException {
StringBuffer logMessage = new StringBuffer(); Class beanClass = bean.getClass();
Field[] fields = beanClass.getDeclaredFields();
logMessage.append("对象名: "+beanClass.getName());
logMessage.append("[");
if(fields != null){
for (int i = 0; i < fields.length; i++) {
fields[i].setAccessible(true);
String name = fields[i].getName();
Object value = fields[i].get(bean);
Class type = fields[i].getType();
String typeName = type.getName();
if (Constant.JAVA_LANG_STRING.equals(typeName)
|| Constant.JAVA_MATH_BIGINTEGER.equals(typeName)) {
appendComma(logMessage);
logMessage.append(name + "=" + value+" ");
} else if (Constant.JAVA_UTIL_CALENDAR.equals(typeName)) {
appendComma(logMessage);
if(value == null){
logMessage.append(name + "= ");
}else{
logMessage.append(name + "=" + ((Calendar) value).getTime()+" ");
}
} else if (typeName.indexOf(Constant.COM_NEUSOFT_PACKAGE) >= 0) {
logMessage.append(name).append("=[");
if (type != null && type.isArray()) {
if(value != null){
for (int j = 0; j < Array.getLength(value); j++) {
appendComma(logMessage);
logMessage.append(logObject(Array.get(value, j)));
}
}
} else {
appendComma(logMessage);
logMessage.append(logObject(value));
}
appendComma(logMessage);
logMessage.append("]");
}
}
}
logMessage.append("]"); return logMessage.toString();
} private static void appendComma(StringBuffer buf) {
if (!"[".equals(buf.toString())) {
buf.append(",");
}
}
}