java 反射 本类,关于Java反射中基本类型的class有关问题
關(guān)于Java反射中基本類型的class問題
1. 基本類型的class和其對應(yīng)包裝類的class是不同的,所以在獲得Method指定參數(shù)的時(shí)候,需要精確指定參數(shù)的類型,即 setInt(int x) 無法使用 getMethod("setInt",Integer.class) 獲得。
2. 基本類型的class無法通過Class.forName方法獲得,可以通過 類型名.class 或者 對應(yīng)包裝類的靜態(tài)字段 TYPE 獲得。
若要?jiǎng)討B(tài)獲得基本類型的class,可以考慮把class存進(jìn)一個(gè)Map中進(jìn)行讀取。
private static final Map> primitiveClazz; // 基本類型的class
private static final String INTEGER = "Integer";
private static final String BYTE = "Byte";
private static final String CHARACTOR = "Charactor";
private static final String SHORT = "Short";
private static final String LONG = "Long";
private static final String FLOAT = "Float";
private static final String DOUBLE = "Double";
private static final String BOOLEAN = "Boolean";
static
{
primitiveClazz = new HashMap>();
primitiveClazz.put(INTEGER, int.class);
primitiveClazz.put(BYTE, byte.class);
primitiveClazz.put(CHARACTOR, char.class);
primitiveClazz.put(SHORT, short.class);
primitiveClazz.put(LONG, long.class);
primitiveClazz.put(FLOAT, float.class);
primitiveClazz.put(DOUBLE, double.class);
primitiveClazz.put(BOOLEAN, boolean.class);
}3. 基本類型class的泛型參數(shù)使用對應(yīng)的包裝類進(jìn)行指定。例如
Class clazz = int.class;
總結(jié)
以上是生活随笔為你收集整理的java 反射 本类,关于Java反射中基本类型的class有关问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 骑士卡怎么办
- 下一篇: 红利指数和中证红利指数有什么区别