您的位置:首页 > 编程语言 > Java开发

如何在java反射中判断某一类型是原始接口类型的包装类

2009-08-17 12:00 441 查看
package test;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestType {
public static void main(String[] args)  {
TestType t=new TestType();
Method[] methods=t.getClass().getMethods();
for (int i = 0; i < methods.length; i++) {
Method m=methods[i];
System.out.println(m.getName());
Class[] params=m.getParameterTypes();
for (int j = 0; j < params.length; j++) {
Class p=params[j];
System.out.println(p);
System.out.println(p.getName());
System.out.println(p.getCanonicalName());
System.out.println(p.getSimpleName());
Field f;
try {
f = p.getDeclaredField("TYPE");
if(f!=null)
System.out.println(">>>"+f.get(null));

} catch (SecurityException e) {
} catch (NoSuchFieldException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}

}
System.out.println("-----------------------------------------------");

}
//	System.out.println(Integer.TYPE);

List list=new ArrayList();
list.add(1);
list.add(new Integer(1));
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
System.out.println(object.getClass().getName());

}
}

public void intF(int i) {
}

public void integerF(Integer i) {
}

public void doubleF(double i) {
}

public void DoubleF(Double i) {
}

public void booleanF(boolean i) {
}

public void BooleanF(Boolean i) {
}
}
?
比如说int 和java.lang.Integer
在每个包装类中都有一个静态字段TYPE
通过获取TYPE字段来获取其原始类型,如果获取异常,则说明其不是包装类。
然后通过获取该字段的值,来获取原始类型的名称。
[/code]
比如说int 和java.lang.Integer

在每个包装类中都有一个静态字段TYPE

通过获取TYPE字段来获取其原始类型,如果获取异常,则说明其不是包装类。

然后通过获取该字段的值,来获取原始类型的名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: