我嘗試在 Scala 中創建一個自定義 Appender(在 UT 中使用它),將 log4j1 遷移到 log4j2,但我不能。
在 log4j1 中是這樣的:
class TestAppender extends AppenderSkeleton {
}
現在我正在做類似的事情:
class TestAppender extends AbstractAppender {
}
但我明白了
Cannot resolve overloaded constructor `AbstractAppender`
關于如何做到這一點的任何想法?
uj5u.com熱心網友回復:
在 Java 中,您在建構式中使用super(arguments). 然而,在 Scala 中,因為類的主體(不包括s)是該類的默認建構式,所以通過在子句def中傳遞引數來呼叫超類建構式:extends
class TestAppender extends AbstractAppender(...) {
由于唯一不推薦使用的建構式AbstractAppender似乎是this one,你幾乎肯定想要類似的東西:
class TestAppender extends AbstractAppender("test", someFilter, someLayout, whetherToIgnoreExceptions, Array()) {
如果您想允許您的類的用戶為 指定一個引數AbstractAppender,那么您可以執行以下操作:
class TestAppender(ignoreExceptions: Boolean) extends AbstractAppender("test", someFilter, someLayout, ignoreExceptions, Array()) {
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/508565.html
上一篇:Scala函式鏈接和處理失敗
