小编Mas*_*ram的帖子

多个继承的类,它们必须在单独的文件中吗?

我正在实现一个系统,我有一个名为'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中应该完成的事情.

将这些类放在同一个文件中是否可以?或者我应该将它们分别移动到单独的文件中?

谢谢

java oop methods inheritance

3
推荐指数
1
解决办法
1206
查看次数

令人难以置信的简单Log4j 2.0示例不起作用

这是一个非常简单的例子,但由于某种原因,它不起作用.我一定错过了一些明显的东西.

我正在尝试制作一个非常简单的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().这意味着默认过滤器/级别没有问题?

java logging log4j2

2
推荐指数
1
解决办法
3979
查看次数

标签 统计

java ×2

inheritance ×1

log4j2 ×1

logging ×1

methods ×1

oop ×1