Есть следующий класс:
public abstract class AbstractWriter<T extends BE> {
protected final T be;
// Constructor, some methods
public static interface Setter {
void setNewValue();
}
protected <S> void setValue(final Class<S> clazz, final S oldValue,
final S newValue, final Setter setter) {
// Do something
setter.setNewValue();
// Do something
}
}
Тогда есть PersonWriter
, который расширяет AbstractWriter
и выглядит в настоящее время так:
public class PersonWriter extends AbstractWriter<BEPerson> {
public PersonWriter(BEPerson be) {
super(be);
}
public void setName(String oldValue, final String newValue) {
setValue(String.class, oldValue, newValue, new Setter() {
@Override
public void setNewValue() {
be.setName(newValue);
}
});
};
}
Но я хочу, чтобы setName
выглядел так:
public void setName(String oldValue, String newValue) {
setValue(String.class, oldValue, newValue, new Setter() {
@Override
public void setNewValue(String newValue) {
be.setName(newValue);
}
});
};
Как мне изменить AbstractWriter
, чтобы он работал (если это вообще возможно)?