У меня есть два формата класса BaseButton
:
public abstract class BaseButton<E extends BaseButton<E>> extends JXButton implements Initializer {
private static final long serialVersionUID = 11L;
public BaseButton() {
LibraryLogger.initMessage(ClassUtils.getInstance().getResolvedClassName(this.getClass()));
initialize();
}
public abstract void initialize();
}
И
public abstract class BaseButton<E> extends JXButton implements Initializer {
private static final long serialVersionUID = 11L;
public BaseButton() {
LibraryLogger.initMessage(ClassUtils.getInstance().getResolvedClassName(this.getClass()));
initialize();
}
public abstract void initialize();
}
И я создаю дочерние классы как:
public class GreenButton extends BaseButton<GreenButton> {
}
У меня вопрос, в чем разница между этими двумя типами общего обозначения?
Какой из них лучше и почему?
Любая информация будет очень полезна для меня.
Спасибо.