Я новичок в Java, поэтому простой вопрос:
У меня есть класс, конструктор которого принимает один аргумент следующим образом:
class MyBase {
public MyBase(ObjectType1 o1) {}
...
}
Я хочу получить класс из этого классачей конструктор принимает строку и вызывает конструктор базового класса с правильным аргументом, выбранным на основе этого аргумента, следующим образом:
class MyDerived extends MyBase {
public MyDerived(String objectType) {
ObjectType o = null;
if (objectType.equals("type1")
o = A; /* some value */
else
o = B; /* some other value */
super(o);
}
Проблема с этим кодом состоит в том, что вызов конструктора должен быть первымутверждение в конструкторе.Так как мне решить эту проблему?Я не хочу принимать решение о ObjectType
вне MyDerived
.Я также предпочел бы не предоставлять статический метод CreateObject
для MyDerived
.