- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
class CellEditor {
protected CellEditor(Composite parent, int style) {
this.style = style;
create(parent);
}
public void create(Composite parent) { ... }
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+71
class CellEditor {
protected CellEditor(Composite parent, int style) {
this.style = style;
create(parent);
}
public void create(Composite parent) { ... }
}
А вот это уже JFace...
5 строка подарил много положительных эмоций, при попытке сконструировать кастомный CellEditor
tir 11.02.2011 17:49 # −2
P. S. Для большей очевидности можно слово abstract добавить в 1-й строке
StriderMan 11.02.2011 18:01 # −1
absolut 11.02.2011 18:20 # 0
Lure Of Chaos 11.02.2011 18:59 # 0
кэп, а в чем говно-то?
gegMOPO4 11.02.2011 21:48 # 0
istem 11.02.2011 23:18 # −1
tir 12.02.2011 00:30 # −1
MyCellEditor(Composite parent, int style, int numberOfLines) {
super(parent, style);
this.numberOfLines = numberOfLines;
}, ну и в методе create() соответственно написать код в стиле
...
combo.setVisibleLinesCount(this.numberOf Lines)
...
Да как говорится, не тут-то было. В момент когда я вызываю super(parent, style) вызывается перегруженный мною метод create(), и в данный момент переменная this.numberOfLines не определена (точнее равна нулю, т. к. это поле). И красивых способов исправить данную ситуацию нет.
Вывод: НИКОГДА НЕ ПЕРЕГРУЖАЙТЕ МЕТОД ВЫЗЫВАЕМЫЙ ИЗ КОНСТРУКТОРА!!!
gegMOPO4 12.02.2011 14:01 # 0
tir 12.02.2011 14:20 # 0
StriderMan 14.02.2011 09:55 # −1
а поменять местами не судьба?
не раскрыта суть метода create(). Нахер его перегружать? Заведите свой .MyCreate() в наследнике.
tir 14.02.2011 12:07 # 0
StriderMan 14.02.2011 14:19 # −2
tir 14.02.2011 15:28 # +2
StriderMan 14.02.2011 15:41 # +1
Lure Of Chaos 15.02.2011 16:48 # 0
PascalGovno 14.02.2011 16:24 # +3
StriderMan 14.02.2011 16:36 # −1
(с)Хой