java 反射技巧

如何獲取方法返回值像List、Map中的泛型類型?

Type type = method.getGenericReturnType();//返回參數帶泛型
    if (type instanceof ParameterizedType) { //判斷是否是參數化類型
        ParameterizedType pType = (ParameterizedType) type;
        Type[] types = pType.getActualTypeArguments();
    }

java 經過反射填充屬性

public static  <T> T attributeFill(Class<T> tClass, Map<String, String> attribute) throws Exception {

        T targetObj = tClass.newInstance();
        for (Map.Entry<String, String> entry : attribute.entrySet()) {
            String filedName = entry.getKey();
            String filedValue = entry.getValue();
            filedValue = entry.getKey();
            //filedName 字段名必需要和tClass中的字段名一致
            PropertyDescriptor pd = new PropertyDescriptor(filedName, tClass);
            Method writeMethod = pd.getWriteMethod();
            writeMethod.invoke(targetObj, filedValue);
        }
        return targetObj;
    }
相關文章
相關標籤/搜索