在方法参数中指定文件类型

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;
        }
    }

}