我正在实现一个系统,我有一个名为'MyMethod'的接口(名称是任意的),许多小类正在实现这个方法(特别是覆盖它的'call'方法),我正在使用多态来创建将这些实例放入列表中.
问题是,由于我有许多实现该方法的小类,因此将这些类放在同一个java文件(MyMethod.java)中更容易,如下所示:
public interface MyMethod {
public String call(foo param1, bar param2) throws SQLException, IOException;
}
class FooMethod1 implements MyMethod {
@Override
public String call(foo param1, bar param2) throws SQLException, IOException {
//Do Something
}
}
class FooMethod2 implements MyMethod {
@Override
public String call(foo param1, bar param2) throws SQLException, IOException {
//Do Something Different
}
}
Run Code Online (Sandbox Code Playgroud)
但是,将这些类放在同一个文件中,尽管更整洁,但我似乎反对在Java中应该完成的事情.
将这些类放在同一个文件中是否可以?或者我应该将它们分别移动到单独的文件中?
谢谢
这是一个非常简单的例子,但由于某种原因,它不起作用.我一定错过了一些明显的东西.
我正在尝试制作一个非常简单的log4j 2.0示例程序.我已将这两个jar添加到类路径中:
的log4j-API-2.0-beta8.jar
log4j的核-2.0-beta8.jar
并使用默认配置完成了最简单的示例:
package testlog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class TestLog {
static Logger logger = LogManager.getLogger(TestLog.class.getName());
public static void main(String[] args) {
logger.trace("Hello World");
System.out.println("Test over");
}
}
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,我得到的只是'测试结束',我从来没有得到过Hello World,无论如何我都能找到.我在找错了地方吗?我的理解是,使用默认配置,它应该通过'Test Over'打印到控制台.我已将日志级别更改为info,仍然相同.我已经尝试将Logger功能拉出到一个类中,仍然是相同的.我在log4j文档页面上关注本教程:
http://logging.apache.org/log4j/2.x/manual/configuration.html#AutomaticConfiguration
我无法理解可能出现的问题.谁能说清楚我做错了什么呢?提前致谢.
更新记录器可以使用logger.error().这意味着默认过滤器/级别没有问题?