Я пытаюсь понять, возможно ли то, что я хочу сделать. Я посмотрел вокруг, и Google не был очень полезным, по крайней мере, в этом конкретном случае.
Вот что я пытаюсь сделать. Назначение, над которым я работаю, предназначено для многократного запуска из командной строки с двумя возможными наборами аргументов: ["CREATE" "cardType"] или ["VERIFICATION" "accountNumber" "actionAmout "]. Каждый раз, когда передается флаг «CREATE», создается анонимный экземпляр класса - конструктор создает различные поля данных, связанные с классом, записывает их в файл, и программа завершает работу. Хорошо, пока.
Вот фрагмент из конструктора (их несколько, но все они практически идентичны):
if(issuer.compareTo("AE") == 0)
{
try
{
cardType = "American Express";
firstDigit = 3;
accountNumber = accountNumberGen(firstDigit);
memberSince = new java.util.Date();
limit = setLimit(accountNumber);
output.write(accountNumber + "|" + cardType + "|" +
memberSince + "|" + limit + "\r\n");
}
catch(Exception e)
{
System.out.printf("An unexpected error occured. Sorry.\n"
+ "American Express Constructor.");
System.exit(0);
}
Итак, вот что я пытаюсь выяснить. Следующим шагом является флаг «ПРОВЕРКА». Если флаг проверки передается из командной строки, мне нужно зайти в файл, прочитать данные, хранящиеся в нем, внести любые изменения и записать его обратно в файл. Опять хорошо пока. Вот проблема:
Поскольку экземпляра класса нет, я не могу вызывать методы в этом классе. Тем не менее, метод Verification не нуждается в экземпляре класса для своей работы - он полностью работает с аргументами командной строки и чтением / записью в файл. Итак, как я могу анонимно вызывать методы в классе? Нужно ли создавать другой класс проверки или просто переместить метод в мой основной класс? Я немного сомневаюсь в этом, потому что назначение подразумевает, что должен быть один класс, который обрабатывает создание и проверку. Или, другая возможность, моя логика в подходе к этой проблеме просто ошибочна?
Этот код находится в стадии разработки - исключения станут более конкретными, и все открытые файловые потоки будут закрыты и т. Д.