В настоящее время я участвую в разработке Java, и я заинтересован в создании классов Java, которые другие пользователи могут импортировать в свою программу и использовать. Да, я знаю, что мой примерный класс прост и глупо, но я хочу изучить концепцию и начать создавать более сложные классы, которые люди могут импортировать в свои проекты.Импорт классов в файлы Java
Я создал простой класс "Logger", который при вызове записывает как текст в консоль, так и текстовый файл для удобства чтения. Вы можете назвать этот класс, используя следующие команды ...
Logger Logger = new Logger();
Logger.create();
Logger.log("This text will be logged to the console and log.log");
Смотри ниже Logger класса.
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Logger {
FileWriter fw;
BufferedWriter br;
File file = new File("log.log");
boolean fileExists = file.exists();
public void log(String message) {
try {
fw = new FileWriter(file, true);
br = new BufferedWriter(fw);
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if(hour > 12)
hour = hour - 12;
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int millis = cal.get(Calendar.MILLISECOND);
int ampm = cal.get(Calendar.AM_PM);
String ampmString;
if(ampm == 1)
ampmString = "PM";
else
ampmString = "AM";
String now = String.format("%02d:%02d:%02d.%03d %s", hour, minute, second, millis, ampmString);
System.out.println(now + " - " + message);
br.write(now + " - " + message);
br.newLine();
br.close();
} catch (Exception err) {
System.out.println("Error");
}
}
public void create() {
try {
fw = new FileWriter(file, true);
br = new BufferedWriter(fw);
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-YYYY");
String dateString = sdf.format(new Date());
if(file.length() != 0)
br.newLine();
System.out.println("Log: " + file.getAbsolutePath());
br.write("--------------------" + dateString + "--------------------");
br.newLine();
br.close();
} catch (Exception err) {
System.out.println("Error");
}
}
}
Проблема, которую я имею в порядке, чтобы использовать этот класс, я должен добавить его к каждому проекту я создаю и хотят использовать это. Есть ли способ добавить импорт, например, mydomain.Logger.*;
и иметь доступ к этому классу и его методам?
Мой вопрос, Каков наилучший способ разрешить кому-либо импортировать/использовать мой класс Logger простейшим способом? Какие шаги я должен предпринять, чтобы позволить им сделать это?
Поскольку вы новичок в Java, я хотел бы отметить, что существует несколько стандартных библиотек протоколирования, которые делают то, что вы наметили здесь. Замечательно, что вы пишете код, чтобы учиться, но будьте осторожны, изобретая колесо. Если вы используете log4j или slf4j, шансы очень высоки, что вы можете получить любые другие сторонние библиотеки для записи в файлы журнала ошибок вместе со своим кодом. – jalynn2
@ jalynn2 Я это понимаю. Я просто возился с этой идеей, и это была самая простая вещь, которую я мог придумать. Спасибо за предложения. :) – Dev