如果您不想向
LogHolder公众公开该类,请不要使其成为的成员类
interface。使其成为成员类没有任何好处,您甚至不必保存输入内容,因为无论如何是成员类还是同一包中的类,无论如何都必须使用holder类的名称来限定字段访问权限:
public interface WithTimeout<Action> { default void onTimeout(Action timedOutAction) { LogHolder.LOGGER.info("Action {} time out ignored.", timedOutAction); }}final class LogHolder { // not public static final Logger LOGGER = getLogger(WithTimeout.class);}


