Java SonarQube:“仅有条件地调用方法” 让我们考虑一个第三方库中的一个类状态,它按照以下方式实现了ToSoin方法:-< /P> public class Status<T> extends AttemptStatus<T> { public String toString() { StringBuilder sb = new StringBuilder("Status{"); sb.append("id=").append(this.id); sb.append(", startTime=").append(this.startTime); sb.append(", endTime=").append(this.endTime); ..... } }

Java SonarQube:“仅有条件地调用方法” 让我们考虑一个第三方库中的一个类状态,它按照以下方式实现了ToSoin方法:-< /P> public class Status<T> extends AttemptStatus<T> { public String toString() { StringBuilder sb = new StringBuilder("Status{"); sb.append("id=").append(this.id); sb.append(", startTime=").append(this.startTime); sb.append(", endTime=").append(this.endTime); ..... } },java,logging,sonarqube,Java,Logging,Sonarqube,所以,如果我从上面的句子中删除toString,那么编译器将按照以下方式进行投诉:- public class ABC { private <T> T executeWithRetries(Callable<T> callable, RetryConfig conf) { Status<T> status = new CallExecutorBuilder() .config(conf) .afterF

所以,如果我从上面的句子中删除toString,那么编译器将按照以下方式进行投诉:-

public class ABC {

private <T> T executeWithRetries(Callable<T> callable, RetryConfig conf) {
    Status<T> status = new CallExecutorBuilder()
            .config(conf)
            .afterFailedTryListener(s -> {
                    LOGGER.warn("Connection failed. Retrying.");
                    MetricsUtil.REDIS_RETRIES_METER.mark();
                    this.redis = createConnection();
            })
            .build()
            .execute(callable);
    LOGGER.info(status.toString());
    return status.getResult();
}
 LOGGER.info(status);
无法解析方法“infocom.evanlennick.retry4j.Status”

是否应将状态变量包装为String.valueOf?但是它不会给我一个在Status类中指定的toString方法输出。有什么解决办法吗?

怎么样:

LOGGER.info{},状态

什么是记录器?答案将取决于日志类中有哪些其他方法可用。另外,sonarqube的投诉应该有一个链接,说明它希望您如何编写代码。
 LOGGER.info(status);