gpt4 book ai didi

Java:@Overridden toString() 不打印任何内容

转载 作者:行者123 更新时间:2023-12-02 00:03:45 27 4
gpt4 key购买 nike

我有一个@Entity作为

@Entity
@Table(name = "variable")
@XmlRootElement
public class Variable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

@Column(unique = true, nullable = false)
private String name;

@Column
@Enumerated(EnumType.STRING)
private VariableType type;

@Column(nullable = false)
private String units;

@Column
private String description;

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_on", nullable = false)
private Date createdOn;

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "retired_on", nullable = true)
private Date retiredOn;

@Column(nullable = false)
private boolean core;

public Variable(@Nonnull final String name,
@Nonnull final VariableType type,
@Nonnull final String units,
@Nonnull final String description,
@Nonnull final Date createdOn,
@Nonnull final boolean core) {
this.name = name;
this.type = type;
this.units = units;
this.description = description;
this.core = core;
this.createdOn = createdOn;
}

@Nonnull
public long getId() {
return id;
}

@Nonnull
public String getName() {
return name;
}

@Nonnull
public VariableType getType() {
return type;
}

@Nonnull
public String getUnits() {
return units;
}

@Nullable
public String getDescription() {
return description;
}

@Nonnull
public Date getCreatedOn() {
return createdOn;
}

@Nonnull
public Date getRetiredOn() {
return retiredOn;
}

@Nonnull
public boolean isCore() {
return core;
}

@Override
public String toString() {
return new StringBuilder().
append("id="+id+" ").
append("name="+name+" ").
append("type="+type+" ").
append("units="+units+" ").
append("description="+description+" ").
append("createdOn="+createdOn+" ").
append("retiredOn="+retiredOn+" ").
append("core="+core+" ").
toString();
}
}

和一个创建@Entity实例的VariableManager

public Variable createVariable(@Nonnull final String name,
@Nonnull final VariableType type,
@Nonnull final String units,
@Nonnull final String description,
@Nonnull final boolean core) {
final Variable variable = variableCrudService.create(new Variable(name, type, units, description, new Date(), core));
LOGGER.info("added variable - ", variable);
return variable;
}

当我执行此操作时,我得到的日志信息为

14:18:12,320 INFO  [org.jboss.resteasy.cdi.CdiInjectorFactory] (http--127.0.0.1-8080-4) Found BeanManager at java:comp/BeanManager
14:18:13,336 INFO [com.bb.business.VariableManager] (http--127.0.0.1-8080-4) added variable -

我不知道为什么 toString 不打印对象的状态,即使我可以看到变量是在数据库中创建的。

最佳答案

从你的代码中,我无法判断你正在使用什么类型的记录器(根据 info() 的方法签名,它似乎不是 log4j 也不是 java.util 记录器),但我怀疑调用

LOGGER.info("added variable - " + variable);

而不是

LOGGER.info("added variable - ", variable);

(注意加号而不是逗号)可以做到这一点。

关于Java:@Overridden toString() 不打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327844/

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