我目前正在學習使用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