我有很多数据对象,我希望能够生成一个String代表每个对象的代码,而不需要为每个对象实现一个toString方法.
我正在考虑获取字段及其值的反射.
还有其他想法吗?
谢谢.
Ale*_*exR 21
欢迎您使用雅加达的ToStringBuilder.它有2种模式,一种需要使用API添加所需的所有字段,另一种是基于反射:
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
Run Code Online (Sandbox Code Playgroud)
使用JUtils插件在包级别生成toString方法
或者使用反射你可以尝试这样的事情:
public static void toString(Object object) throws InvocationTargetException, IllegalArgumentException, IllegalAccessException{
Class c = object.getClass();
Method[] methods = c.getMethods();
for (Method method : methods) {
if(method.getName().startsWith("get")){
System.out.println(method.getName()+" -> " +method.invoke(object, null));
}
}
}
Run Code Online (Sandbox Code Playgroud)
JUtil插件是最好的,因为如果您需要提供有关该对象的更多信息,这将允许您稍后更改对象的toString.
| 归档时间: |
|
| 查看次数: |
9297 次 |
| 最近记录: |