У меня есть метод, который используется для двух разных действий. Действия идентифицируются с помощью кнопки, которую пользователь нажимает.Лучший способ определить, какая кнопка была нажата для логики метода
Я использую логическое значение для идентификации нажатия кнопки.
PDFButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
buildArray(true);
}
});
PlotButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
buildArray(false);
}
});
public void buildArray(boolean buttonId) {
get indexs etc...
if(true) {
PDF.getInstance.buildArray(index);
}
else {
Plot.getInstance.buildArray(index);
}
}
Возможно, это лучший способ сделать это?
EDIT Typo in button snippet ined. Есть две кнопки, а не одна. То, что я пытаюсь сделать, это установить условие в логике IF, поэтому я знаю, какая кнопка была нажата для активации метода buildArray.
public void buildArray() {
get indexs, mode code.....
if**(button press equals PDFButton)** {
PDF.getInstance.buildArray(index);
}
else {
Plot.getInstance.buildArray(index);
}
}
Я знаю, что одним из способов было бы создать отдельный метод, похожий на buildArray. Затем каждая кнопка будет выполнять свой собственный метод.
PDFButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
PDFbuildArray(true);
}
});
PlotButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
PlotbuildArray(false);
}
});
Но я хочу консолидировать как код мусора, насколько это возможно.
'if (true)' всегда 'истина', вы имели в виду это? – Maroun
Что значит «какая кнопка пользователь нажимает»? Вы подключили слушателей выбора к кнопке * same * ... Есть ли где-то вторая кнопка? –
Это не худший способ сделать это возможным; то есть, если ваш код сделал логический смысл, а это не –