我正在尝试做这样的事情:
公共类 Arquivo { 私有文件目录 = null ; 公共 Arquivo(文件目录){ this.directorio = 目录; } 公共 Arquivo(字符串目录){ 这个(新文件(目录)); } 公共 Arquivo(字符串文件名){ 这个(新文件(“./src/Data/”+fileName)); } }
我正在尝试做这样的事情:
公共类 Arquivo { 私有文件目录 = null ; 公共 Arquivo(文件目录){ this.directorio = 目录; } 公共 Arquivo(字符串目录){ 这个(新文件(目录)); } 公共 Arquivo(字符串文件名){ 这个(新文件(“./src/Data/”+fileName)); } }
您不能创建两个接收单个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));
}
构造函数不能这样做
一个懒惰的解决方案是
public Arquivo(String s) {}
public Arquivo(String s, boolean b) {}
只是不要使用布尔值