我尝试在Scala中创建一个自定义Appender(在UT中使用),将log4j1迁移到log4j2,但我做不到。
在log4j1中,如下所示:
class TestAppender extends AppenderSkeleton {
}
现在我在做一些事情
class TestAppender extends AbstractAppender {
}
但我得到
Cannot resolve overloaded constructor `AbstractAppender`
有什么想法吗?
1条答案
按热度按时间1cklez4t1#
在Java中,你可以用
super(arguments)
调用构造函数中的超类构造函数。但是在Scala中,因为类的主体(不包括def
s)是类的默认构造函数,所以超类构造函数是通过在extends
子句中传递参数来调用的:由于
AbstractAppender
的唯一未被弃用的构造函数似乎是以下构造函数,因此您几乎肯定需要类似以下的构造函数:如果要允许类的用户为
AbstractAppender
指定参数,则应执行类似以下操作: