Discuss / Java / 感觉 怪怪 的

感觉 怪怪 的

Topic source

public class Main {

public static void main(String[] args) {

Logger logger = Logger.getLogger(Main.class.getName());

logger.info("Start process...");

try {
"".getBytes("invalidCharsetName");
} catch (UnsupportedEncodingException e) {
// TODO: 使用logger.severe()打印异常
logger.severe((Supplier<String>) e);
}

logger.info("Process end.");
}
}

直接tostring了 不知道当时从哪搞出来 Supplier<String>) 这么个鬼玩意

🌙

#3 Created at ... [Delete] [Delete and Lock User]

logger.severe((Supplier<String>) e);

是重载方法 传入的是一个 函数式接口 

可以进行其他操作

🌙

#4 Created at ... [Delete] [Delete and Lock User]

可以这样写

logger.info(()->{e.printStackTrace();    return null;});

应该是弥补了,e.tostring 的一些缺陷,比如无法看到具体stack信息

🌙

#5 Created at ... [Delete] [Delete and Lock User]

看评论,好像没人注意到这个重载方法,我之前也不理解,果然,每次看都不一样

主要是最近刚学lambda表达式


  • 1

Reply