Скажем, у меня есть класс, например Foo:
public class Foo {
private Integer x;
private Integer y;
public Foo(Integer x, Integer y) {
this.x = x;
this.y = y;
}
public String toString() {
return x + " " + y;
}
}
Теперь я хочу добавить конструктор, который принимает в качестве аргумента строку, представляющую Foo, например Foo ("1 2") построит Foo с x = 1 и y = 2. Поскольку я не хочу дублировать логику в исходном конструкторе, я хотел бы иметь возможность сделать что-то вроде этого:
public Foo(string stringRepresentation) {
Integer x;
Integer y;
// ...
// Process the string here to get the values of x and y.
// ...
this(x, y);
}
Однако Java не допускает операторов до вызова this (x, y). Есть ли какой-нибудь принятый способ обойти это?