/** * 反射查找get方法 * * @param o * @param fieldName * @return */ public static Object invokeGet(Object o, String fieldName) { Method method = getGetMethod(o.getClass(), fieldName); try { return method.invoke(o, new Object[0]); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 反射查找set方法 * * @param o * @param fieldName * @param value */ public static void invokeSet(Object o, String fieldName, Object value) { Method method = getSetMethod(o.getClass(), fieldName); try { method.invoke(o, new Object[]{value}); } catch (Exception e) { e.printStackTrace(); } } private static Method getGetMethod(Class objectClass, String fieldName) { StringBuilder sb = new StringBuilder(); sb.append("get"); sb.append(fieldName.substring(0, 1).toUpperCase()); sb.append(fieldName.substring(1)); try { return objectClass.getMethod(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } private static Method getSetMethod(Class objectClass, String fieldName) { try { Class parameter; Field field = objectClass.getDeclaredField(fieldName); parameter = field.getType(); StringBuffer sb = new StringBuffer(); sb.append("set"); sb.append(fieldName.substring(0, 1).toUpperCase()); sb.append(fieldName.substring(1)); Method method = objectClass.getMethod(sb.toString(), parameter); return method; } catch (Exception e) { e.printStackTrace(); } return null; }
发表回复