我對此有點陌生,如果這似乎是一個幼稚的問題,我很抱歉。假設我有如下 Java 類:
public class A {
private final regex = "folder1/folder2/folder3/.*";
private Pattern pattern;
A(...) {
this.pattern = Pattern.Compile(regex)
}
public func1(String str){
if (...){
Matcher m = pattern.matcher(str)
}
}
}
現在我正在嘗試A使用 scala 擴展該類,以便我可以覆寫該regex欄位,因此可以覆寫pattern它后面的欄位。
class B(...) extends A(...){
}
但我不確定如何覆寫正則運算式以regex = "folder4/.*"用于課堂B
uj5u.com熱心網友回復:
您可以將其傳遞給受保護的建構式:
class A {
private final String regex;
protected A(String regex) {
this.regex = regex;
}
public A() {
this("folder1/folder2/folder3/.*");
}
}
class B extends A {
public B() {
super("folder4/.*");
}
}
或者只是將每個宣告為常量并使用可覆寫的方法來讀取它們:
class A {
private static final String REGEX = "folder1/folder2/folder3/.*";
protected String getRegex() {
return REGEX;
}
}
class B {
private static final String REGEX = "folder4/.*";
@Override
protected String getRegex() {
return REGEX;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/524127.html
下一篇:不能對物件串列使用add()方法
