本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看<活动链接>
提问:如何在Java中将String转换为CharSequence?
回答1: 由于String IS-A CharSequence 所以他们可以直接转换.
如果要将CharSequence转换为String,只需使用toString方法,该方法必须由每个CharSequence的实例来调用。
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
提问:如何使用java.util.logging
我想在程序中使用日志。我听说过java.util.logging,但是我不知道如何开始。
有什么示例可以记录日志吗?如何在自己的程序中使用日志记录?
回答1:
java.util.logging 使您不必再为应用程序携带一个jar文件,并且它与良好的Formatter一起使用效果很好。
通常来说,在每个Class的前几行,你都应该有Logger实例。
private static final Logger LOGGER = Logger.getLogger( ClassName.class.getName() );
然后,您可以使用Logger类的各种功能。
将Level.FINE用于在执行流程的顶层进行调试。
LOGGER.log( Level.FINE, "processing {0} entries in loop", list.size() );
使用异常处理时,请始终记录完整的异常详细信息:
try {
...something that can throw an ignorable exception
} catch( Exception ex ) {
LOGGER.log( Level.SEVERE, ex.toString(), ex );
}
回答2:
有许多示例,也有不同类型的日志记录。可以自己看一下java.util.logging包。
示例代码:
import java.util.logging.Logger;
public class Main {
private static Logger LOGGER = Logger.getLogger("InfoLogging");
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
通过反射,而无需对类名进行硬编码
import java.util.logging.Logger;
public class Main {
private static final Logger LOGGER = Logger.getLogger(
Thread.currentThread().getStackTrace()[0].getClassName() );
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}