mic*_*man 7 java constructor super
我有一个必须用参数构造的基类.在子类中,我需要在构造基类之前准备这个参数,但是在Java中必须先调用super.处理这种情况的最佳方法是什么(见下面的简单示例).
class BaseClass {
protected String preparedParam;
public BaseClass(String preparedParam) {
this.param = param;
}
}
class ChildClass {
public ChildClass (Map<String, Object> params) {
// need to work with params and prepare param for super constructor
super(param);
}
}
Run Code Online (Sandbox Code Playgroud)
Rom*_*man 11
您可以创建一个静态方法,进行转换并调用它.
class ChildClass {
static String preprocessParams(Map<String, Object> params) {
...
return someString;
}
public BaseClass(Map<String, Object> params) {
super(preprocessParams(params));
}
}
Run Code Online (Sandbox Code Playgroud)
这是一种方法:
class ChildClass {
public ChildClass(Map<String, Object> params) {
super(process(params));
}
private static String process(Map<String, Object> params) {
// work with params here to prepare param for super constructor
}
}
Run Code Online (Sandbox Code Playgroud)