gpt4 book ai didi

java - 将对象信息打印为 toString() 而不使用 toString()?

转载 作者:行者123 更新时间:2023-12-01 06:33:36 28 4
gpt4 key购买 nike

我的问题是,JAVA中没有提供toString()方法的类是否可以打印出特定信息?

问题在于:我们为我们的应用程序提供了一个记录器(使用aspectJ),它打印出给出的特定参数。例如:

public void addGroupMembers(Group group, String doneBy, DataListModel<User> users) {
doSomething()
}

我们的记录器打印以下内容:

addGroupMembers called with given arguments:
Group = [id = ..... and so on]
username
DataListModel$1231 <-

我们必须使用 DataListModel-Class,因为我们在后台使用 JSF。但是,正如您所看到的,此类不提供 toString 方法。

我们的记录器是我们自己编写的,因此我们可以对其进行调整。是否可以模拟 toString 方法,例如:如果类不提供 toString,则捕获其所有字段并打印它们?

或者还有其他办法吗?

预先感谢您的帮助。你好,雷钩

最佳答案

您可以使用ReflectionToStringBuilder 。像这样的东西:

if (object.toString().endsWith("@" + Integer.toHexString(object.hashCode())) {
// default toString()...
return ReflectionToStringBuilder.toString(object);
}
else {
return object.toString();
}

关于java - 将对象信息打印为 toString() 而不使用 toString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959850/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com