Создание массива классов

95
9

Хорошо, что проблема, над которой я работаю, - это создать мастер для программы, которую я создаю. Горе со мной это несколько длинное ветреное объяснение, поскольку мне нужно объяснить установку.

В настоящее время у меня есть три класса, которые объединяются для создания фрейма мастера и отображения всех панелей, которые необходимо собрать всю необходимую информацию для создания нового элемента.

первое является абстрактным расширением JPanel, так что определенные значения и методы всегда доступны, каждый класс, который расширил нижеследующий, будет иметь свой собственный уникальный конструктор для передачи данных, необходимых для заполнения различных списков со списком, списков и т.д.

public abstract class baseWizPanel extends JPanel {
protected boolean isValid = false;
protected final int lblWidth = 85;

public baseWizPanel(String Name) {
setLayout(new BorderLayout(0, 0));

JLabel lblStepName = new JLabel(Name);
}

public abstract boolean isDataValid();
public abstract void validate();
public abstract String getMessage();
}

второй класс, который собирает эту baseWizardPanel вместе с именем, это будет использоваться для хранения других вещей в будущей версии. На всякий случай, если ты задаешься вопросом, почему даже это получилось.

public class WizardStep {
private String Name;
private baseWizPanel pnlToAdd;

public <T extends baseWizPanel> WizardStep(String n, T p) {
this.Name = n;
this.pnlToAdd = p;
}

public String getName() {
return this.Name;
}

public Component getPanel() {
return this.pnlToAdd;
}
}

Последний класс - это расширение JDialog, которое объединяет все части и представляет их пользователю как шаг за шагом.

Раньше я использовал реализацию моего мастера так же, как это.

Загрузите все соответствующие данные. Создайте ArrayList WizardStep постройте массив, используя ArrayList.add (новый WizardStep ("имя", новый baseWizPanel (аргументы))); Мастер загрузки и отображение класса загрузки

Это прекрасно работает, чтобы создать мастер и отобразить его пользователю. Теперь я хочу использовать общую функцию загрузки данных, которую я создал для хранения всех данных в одном месте, мне нужно создать мастер из класса ArrayList.

поэтому я хочу пойти

public class loadData {
loadData(ArrayList<class> classestoload)

dataset1 = load data from data source
dataset2 = load data from data source
dataset3 = load data from data source
dataset4 = load data from data source
dataset5 = load data from data source

for each class in classestoload {
create class

if class = class1 {
use class1 constructor with dataset 1 & 2
}

if class = class2 {
use class1 constructor with dataset 5
}

if class = class3 {
use class1 constructor with dataset 2 & 3
}

if class = class4 {
use class1 constructor with dataset 4 & 5
}
}
}

Я могу использовать код из Create new class из Variable в Java для создания класса, в котором я нуждаюсь, но для использования конструкторов и передачи правильных данных мне нужно знать класс, я мог бы использовать instanceof, но все, что я читал, говорит, что это isn Хороший выбор.

Теперь мой вопрос заключается в том, что я должен делать здесь, чтобы мне не пришлось использовать instanceof или что я должен использовать вместо экземпляра?

Надеюсь, я объяснил это правильно и приношу свои извинения, если нет.

спросил(а) 2013-08-27T02:51:00+04:00 6 лет, 4 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема