Есть метод для добавления пар ключ - значение в проперти файл словаря, дело в том, что я не знаю как его сделать универсальным, т.е. чтобы можно было использовать один метод на разные словари. Например словарь англо-русский и немецко-английский, при том, что условия к ключу везде будут разные. Не добавлять же отдельный метод для каждого словаря, просто если их будет 1000?
public void addToDictionary(String key, String value){
if (key.matches("[A-z]{4}")){
propFile.setProperty(key, value);
try {
propFile.store(new PrintWriter(new FileOutputStream(propConsole.getProperty(fileName)), true), null);
} catch (IOException e) {
e.printStackTrace();
}
map.put(key, value);
System.out.println(propConsole.getProperty("successful.entry"));
}
else
System.out.println(propConsole.getProperty("error.entry"));
}
Для остальных методов так сделать получилось, вот пример
public void delete(String key){
map.entrySet().removeIf(next -> next.getKey().equals(key));
propFile.remove(key);
try {
propFile.store(new PrintWriter(new FileOutputStream(propConsole.getProperty(fileName)), true), null);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(propConsole.getProperty("remove.entry"));
}
fileName - я инициализирую при загрузке класса
public void startProgram(){
do {
System.out.println(properties.getProperty("choice"));
choice = scanner.nextLine();
if (choice.equals("1")) {
dictionary.loadDictionaryFromFile("dictionary.char");
break;
}else if (choice.equals("2")) {
dictionary.loadDictionaryFromFile("dictionary.number");
break;
}
}while (!choice.equals("1") || !choice.equals("2"));
Определите в классе два поля и проинициализируйте их в конструкторе
class MyDictionary {
private final String fileName;
private final String keyMatch;
public MyDictionary(String fileName, String keyMatch) {
this.fileName = fileName;
this.keyMatch = keyMatch;
}
А дальше просто обращайтесь к ним
public void addToDictionary(String key, String value){
if (key.matches(keyMatch)){
Если у вас создание объекта класса и связывание его со словарем разные операции, то добавьте регулярное выражение параметром в метод loadDictionaryFromFile()
void loadDictionaryFromFile (String fileName, String keyMatch) {
this.fileName = fileName;
this.keyMatch = keyMatch;
..............
}
(тогда нужно будет убрать модификаторы final
из объявления полей)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Не заполняется поле "Дата рождения" при запуске тест passed, сделал проверку на заполнение полей, выдает асертЭлемент находит, но почему-то пропускает...
Стоит сервер - клиентское приложение , использующее в своей работе Java и TomCatПри соединении клиентского приложения с серверной частью по протоколу...
Требуется реализовать возможность вывода фотографий после получения ответа JSON с сервераВ этом ответе содержаться прямые ссылки на фотографии
Мне необходимо встроить карты в моё оконное приложение на Java, не обязательно google-карты, мне нужно лишь находить место по заданным координатам,...