Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通用测井方法_Java_Design Patterns - Fatal编程技术网

Java 通用测井方法

Java 通用测井方法,java,design-patterns,Java,Design Patterns,这是一件好事吗;通过这样的方法登录 public static void log(final Object... messages) { logger.info(Joiner.on(',').useForNull("null").join(messages)); } //在代码的其他部分中,我们可以使用逗号而不是字符串连接来调用logger方法。请注意Joiner是番石榴类 log(" Check ",obja.getXXX(),anotherObject.getMethod());

这是一件好事吗;通过这样的方法登录

public static void log(final Object... messages) {
    logger.info(Joiner.on(',').useForNull("null").join(messages));
}
//在代码的其他部分中,我们可以使用逗号而不是字符串连接来调用logger方法。请注意Joiner是番石榴类

log(" Check ",obja.getXXX(),anotherObject.getMethod());

期望是干净的代码、方便性和性能

您可能希望加入
(空白)而不是逗号,但设计方法是一个好主意

就性能而言,这并不理想。创建一个附加的对象数组和一个连接件,以及连接件的内部缓冲区

所以你可以用这种方法得到三分之二。如果您真的关心性能,请使用已经使用类似方法的接口。

我使用接口(带实现),我发现它更易于阅读

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Test {
    private static final Logger logger = LoggerFactory.getLogger(Test.class);

    public void method(String name, int age, Address address) {
        logger.info("Person {}, age {} years old resides at {}", name, age, address);
    }
}

正如其他答案所说,SLF4J的界面更好


我不明白这是一种性能改进。也许OP头脑中有一个特定的用例,一些示例代码可以解释它。如果想法是预先收集消息并将它们一起发送到日志方法调用,那么最好使用具有缓冲功能的appender。

我将添加第二个参数,允许您指定日志的严重性。@adarshr我会在有机会时立即尝试SLF4J。泰。