使用Java的泛型和反射机制来实现,代码示例如下:
public class ObjectParameter {
private String parameterName;
private Class type;
public ObjectParameter(String parameterName, Class type) {
this.parameterName = parameterName;
this.type = type;
}
public T getParameter(Object obj) throws IllegalAccessException, InvocationTargetException {
Method method = null;
T parameterValue = null;
try {
method = obj.getClass().getMethod("get" + parameterName);
if(method.getReturnType().equals(type)) {
parameterValue = (T) method.invoke(obj);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
return parameterValue;
}
}
使用时,可以创建一个ObjectParameter对象,指定参数名和类型,然后通过调用getParameter方法来获取参数值,例如:
User user = new User();
user.setName("Tom");
user.setAge(18);
ObjectParameter nameParameter = new ObjectParameter<>("Name", String.class);
String name = nameParameter.getParameter(user); // name = "Tom"
ObjectParameter ageParameter = new ObjectParameter<>("Age", Integer.class);
Integer age = ageParameter.getParameter(user); // age = 18