В вашем примере это, вероятно, будет работать , но , так как вызов super()
должен быть первым в дочерних классах BaseTask
, это означает, что конструктор не сможет выполнить какую-либо операцию до подачи задания.
Из вашей выборки второй параметр использовать нельзя, поскольку задача будет отправлена до того, как вы сможете назначить ее атрибуту.
Если мы рассмотрим следующий код:
public class MyTask extends BaseTask {
public ABC(ParamA aParam, String name) {
super(aParam);
this.name = name == null ? "Default Value" : name;
}
@Override
public void run() {
System.out.println("Name length: "+ name.length());
}
}
Поскольку run()
может быть вызван до присвоения this.name
, строка System.out
может заканчиваться NullPointerException