我想知道是否可以在类构造函数中要求某种类型的文件?
例如:
private class name(File location.txt)
我想为我要支持的每种类型的文件格式有一个不同的构造函数。我可以编写一个方法来检查文件并将其发送到适当的方法,但想知道是否可以跳过该逻辑?
最佳答案
我希望这个迷你工厂 sample 适合您:
public class Test {
private FileReaderFactory fileReaderFactory = new FileReaderFactory();
public static void main(String[] args) {
String fileTxt = "test1.txt";
String filePdf = "test2.pdf";
Test test = new Test();
FileTypeI filereaderTxt = test.fileReaderFactory.createFromExtension(fileTxt);
FileTypeI filereaderPdf = test.fileReaderFactory.createFromExtension(filePdf);
filereaderTxt.readFile();
filereaderPdf.readFile();
}
public interface FileTypeI {
void readFile();
}
class TextFileReader implements FileTypeI {
@Override
public void readFile() {
//Code to read Text File
}
}
class PDFFileReader implements FileTypeI {
@Override
public void readFile() {
//Code to read PDF File
}
}
class FileReaderFactory {
public FileTypeI createFromExtension (String filename) {
FileTypeI returningValue = null;
if (filename != null && filename.endsWith(".txt")) {
returningValue = new TextFileReader();
}
else if (filename != null && filename.endsWith(".pdf")) {
returningValue = new PDFFileReader();
}
return returningValue;
}
}
}
关于java - 在方法参数中指定文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28479084/