据我所知,paths.get
和path.of
似乎做了完全相同的事情,将一个或多个字符串转换为path
对象;文档https://docs.oracle.com/javase/8/docs/api/java/nio/file/paths.html#get-java.lang.string-java.lang.string...-和https://docs.oracle.com/en/java/javase/13/docs/api/java.java.base/java/nio/file/path.html#of(java.lang.string,java.lang.string...)用同样的措辞。它们实际上是一样的吗?
path.of
是后来引入的。猜想:引入它是为了保持一致的foo.of
样式。在这种情况下,从一致性/美学的角度来看,它会被认为是更可取的?
实际上,后来引入了path.of
。
猜想:引入它是为了保持一致的foo.of
样式。
在邮件列表存档中,此方法曾被称为path.get
:
该修补程序将paths.get()方法复制到path.get()中的静态方法,并修改前者以调用后者的相应方法。对路径规范进行了轻微的清理,不引用路径,也不引用它本身,例如,“(see Path)”。@implspec注释被添加到路径中,以指示方法只是调用它们在路径中的对应项。
...
后来,当Brian Goetz建议它与foo.of
保持一致时,这一点发生了变化:
另外,Brian Goetz建议,如果将这些工厂方法命名为“of”会更加一致,所以我假设webrev将会更新,以查看它的外观。
修改java.base中的所有源文件,将paths.get()更改为path.get(),并删除路径的导入。...
因此,我认为path.of
确实比paths.get
更好。
实际上,如果您查看Javadoc forpaths
for Java13您会发现以下注意:
API注意:
建议通过path.of
方法而不是通过此类中定义的get
方法获得路径
,因为此类可能在未来的版本中不推荐使用。