作业帮 > 综合 > 作业

反射怎么获取类属性类型

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/04 11:55:42
反射怎么获取类属性类型
有一个类:
class People
{
public int ID { get; set; }
public string Name { get; set; }
public bool Register { set; get; }
public float Gold { get; set; }
}
我怎么通过反射获取每一个属性的类型,是Int型的,还是string型的还是float型的,我主要想实力话这个类的时候,初始化这些值,string 为Empty,Int为0.
反射怎么获取类属性类型
反射可以获取到属性类型,Field类里面有个方法,getType()就是获取属性类型的.
下面是个示例代码.
public static void main(String args[]) {
\x09\x09People peo = new People();
\x09\x09Class cla = People.class;
\x09\x09try {
\x09\x09\x09Field[] fields = cla.getFields();
\x09\x09\x09for(Field field:fields){
\x09\x09\x09\x09Class c = field.getType();
\x09\x09\x09\x09if(c==String.class){
\x09\x09\x09\x09\x09field.set(peo,"EMPTY");
\x09\x09\x09\x09}else if(c==Integer.class){
\x09\x09\x09\x09\x09field.set(peo,0);
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09} catch (SecurityException e) {
\x09\x09\x09// TODO Auto-generated catch block
\x09\x09\x09e.printStackTrace();
\x09\x09}catch (IllegalArgumentException e) {
\x09\x09\x09// TODO Auto-generated catch block
\x09\x09\x09e.printStackTrace();
\x09\x09} catch (IllegalAccessException e) {
\x09\x09\x09// TODO Auto-generated catch block
\x09\x09\x09e.printStackTrace();
\x09\x09}
\x09}
主要就是用Class c = field.getType();
这个来获取类型.
仍有问题可以Hi我.或者直接追问.