java.beans
1、Statement
可以执行指定的方法,但不能得到返回值
2、Exception是Statement的子类,执行指定的方法并得到返回值
在Java中执行指定方法名的方法可以使用如下方式:通过反射找到指定方法名的Method,再通过Method的invoke方法
这一切都在Exception中做好了。如下:
Expression exp = new Expression(target, methodName, arguments);
return exp.getValue();
笔者觉得这种方式还是有点繁琐,于是稍微做了一层封装,得到:
public static Object executeMethod(Object target, String methodName, Object[] arguments){
Expression exp = new Expression(target, methodName, arguments);
try {
return exp.getValue();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
你可以在commons组件的com.upeng.commons.beans.ExpressionUtils找到此方法。
3、XMLEncoder与XmlDecoder前者持有OutputStream,后者持有InputStream的引用。前者生成对象的xml表示文档,后者解析该文档并反序列化为对象。
......
1、Statement
可以执行指定的方法,但不能得到返回值
2、Exception是Statement的子类,执行指定的方法并得到返回值
在Java中执行指定方法名的方法可以使用如下方式:通过反射找到指定方法名的Method,再通过Method的invoke方法
这一切都在Exception中做好了。如下:
Expression exp = new Expression(target, methodName, arguments);
return exp.getValue();
笔者觉得这种方式还是有点繁琐,于是稍微做了一层封装,得到:
public static Object executeMethod(Object target, String methodName, Object[] arguments){
Expression exp = new Expression(target, methodName, arguments);
try {
return exp.getValue();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
你可以在commons组件的com.upeng.commons.beans.ExpressionUtils找到此方法。
3、XMLEncoder与XmlDecoder前者持有OutputStream,后者持有InputStream的引用。前者生成对象的xml表示文档,后者解析该文档并反序列化为对象。
......