4

我正在尝试做这样的事情:

公共类 Arquivo {

    私有文件目录 = null ;

    公共 Arquivo(文件目录){
        this.directorio = 目录;
    }

    公共 Arquivo(字符串目录){
        这个(新文件(目录));
    }

    公共 Arquivo(字符串文件名){
        这个(新文件(“./src/Data/”+fileName));
    }
}

4

3 回答 3

10

您不能使用构造函数,这是构造函数的限制之一

是时候开始使用静态工厂模式了


也可以看看

于 2013-10-28T20:00:48.007 回答
3

您不能创建两个接收单个String参数的构造函数,只能存在一个这样的构造函数。签名之间必须有区别,例如,向其中一个构造函数添加第二个参数。

或者,您可以创建一个构造函数并在第二个参数中指示它是文件还是目录:

// isFile == true means it's a file. isFile == false means it's a directory
public Arquivo(String fileName, boolean isFile) {
    this(new File((isFile ? "./src/Data" : "") + fileName));
}
于 2013-10-28T20:00:55.350 回答
-1

构造函数不能这样做

一个懒惰的解决方案是

public Arquivo(String s) {}

public Arquivo(String s, boolean b) {}

只是不要使用布尔值

于 2013-10-28T20:06:20.540 回答