我目前正在学习使用Java进行开发,并有兴趣创建其他用户可以导入到其程序并使用的Java类。是的,我知道我的示例类简单而愚蠢,但我想学习这个概念并开始制作更复杂的类,以便人们可以将其导入到他们的项目中。将类导入Java文件
我创建了一个简单的“Logger”类,它在调用时将文本记录到控制台和文本文件以提高可读性。您可以使用下面的命令调用这个类...
Logger Logger = new Logger();
Logger.create();
Logger.log("This text will be logged to the console and log.log");
为记录仪类见下文。
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