Я реализовал стратегию карты, предложенную Лео. Хотя это не единогласное решение, я могу использовать его немедленно, и я думаю, что это довольно хорошая альтернатива. Это не только позволяет избавиться от лишних сеттеров и геттеров, но вы также можете создать ArrayList (или любую другую коллекцию) для динамического хранения каждого поля. Нет необходимости знать имя экземпляра каждого списка, потому что вы можете получить к ним доступ с помощью ключа карты (ключ = имя столбца), что позволяет избежать необходимости кодировать список для каждого поля. Я действительно считаю, что это большое преимущество. Затем можно преобразовать каждое поле прямо в строку (или в любой другой тип), что сделает код компактнее.
Например:
Класс LoadBigFile подключается к базе данных и загружает содержимое файла на карту.
Что-то вроде этого (обратите внимание: это всего лишь очень расплывчатый пример, иллюстрирующий, что можно сделать):
Class LoadBigFile{
private HashMap<String, ArrayList<String>> filemap = new HashMap<String,ArrayList<String>>();
////// ...Code to connect to database and load the file contents into the map
////// Setter and getter for the map:
public void setFileMap(HashMap<String, ArrayList<String>> filemap){this.filemap=filemap;}
public HashMap<String, ArrayList<String>> getFileMap(){return this.filemap;}
}
Затем в классе вы собираетесь использовать данные (распаковать карту):
LoadBigFile loadBigFile = new LoadBigFile();
String customer = loadBigFile.getFileMap().get("CUSTOMER").get(iterator));
ПРИМЕЧАНИЕ. Я не буду рассказывать об итераторе, потому что это будет не по теме. Все, что я могу сказать, это то, что это работает.
Несмотря на то, что я все еще изучаю другие методы, такие как ORM и JPA, я попробую подход с картами, когда буду развивать свои навыки и изучать более сложные методы.
Спасибо вам всем. Я надеюсь, что этот вопрос поможет другим энтузиастам Java.
person
Gil
schedule
12.05.2014