在方法参数中指定文件类型
specify file type in method parameter
我想知道是否可以在 class 构造函数中要求某种类型的文件?
例如:
private class name(File location.txt)
我想为我要支持的每种类型的文件格式使用不同的构造函数。我可以编写一个方法来检查文件并将其发送到适当的方法,但想知道是否可以跳过该逻辑?
希望这个迷你工厂示例对您有用:
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;
}
}
}
我想知道是否可以在 class 构造函数中要求某种类型的文件?
例如:
private class name(File location.txt)
我想为我要支持的每种类型的文件格式使用不同的构造函数。我可以编写一个方法来检查文件并将其发送到适当的方法,但想知道是否可以跳过该逻辑?
希望这个迷你工厂示例对您有用:
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;
}
}
}