java如何通过一个字段的get属性来判断类型

例如,
public class Person{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
如何通过这个getName属性反射得到name的类型阿

package com.tset;

import java.lang.reflect.Field;

public class Person{
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public static void main(String[] args) throws ClassNotFoundException {
        Person object = new Person();
        Class<?> clz = object.getClass();
        Field[] fieldlist = clz.getDeclaredFields();
        for (int i = 0; i < fieldlist.length; i++) {
            System.out.println(fieldlist[i].getType().toString().substring(fieldlist[i].getType().toString().lastIndexOf(".")+1, fieldlist[i].getType().toString().length()));
        }
    }
}
这个应该符合你的要求,如果那里不行,我再帮你看看!这是利用反射的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-25
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));

}
}
}
相似回答