6.7 如何在Java中将String转换为CharSequence?(二合一)| Java Debug 笔记

2,890 阅读1分钟

本文正在参加「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");
  }
}