gpt4 book ai didi

java - 如何覆盖包装类中的 toString()?

转载 作者:行者123 更新时间:2023-11-29 07:47:14 25 4
gpt4 key购买 nike

有人向我展示了一种将一些数据从数据库解析为实体的方法。我得到了这个很好的包装类

public class ObjectWrapper implements Wrapper{
private Object wrappedObject;
//...
public static Wrapper wrap(ResultSet rs, int column, int columnType) throws SQLException {
if (columnType == 0) {
return new EmptyListExceptionWrapper();
} else {
return new ObjectWrapper(rs.getObject(column));
}
}
}

当我尝试使用它来解析这些对象时,我得到的名称类似于 databaseConnection.ObjectWrapper@5010be6 而不是它们的真实名称。另一个好人告诉我,我必须重写 ObjectWrapper 类中的 toString() 方法才能获得真正的结果。

我应该怎么做?我知道不能添加或更改那些原始类型。例如,我应该像下面那样做吗?

 public static String toString(){
String str = new String();
return str += wrappedObject;
}

最佳答案

首先,应用于类的特定实例的方法不应该是 static , 你通常应该避免字符串连接而使用 StringBuilder .

其次,一些工具将创建有用的toString适合您的方法:您的 IDE 可以生成一个,Apache Commons Lang 有 ToStringBuilder .

如果您没有关于包装类型(及其自己的 toString 实现)的任何信息,那么您可能只使用如下内容:

@Override
public String toString() {
// uses a StringBuilder implicitly
return "ObjectWrapper[" + wrappedObject.toString() + "]";
}

关于java - 如何覆盖包装类中的 toString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590328/

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