Soweit ich das beurteilen kann Paths.get
und Path.of
genau dasselbe zu tun scheine, verwandle ich eine oder mehrere Saiten in ein Path
Objekt; die Dokumentation https://docs.oracle.com/javase/8/docs/api/java/nio/file/Paths.html#get-java.lang.String-java.lang.String...- und https: //docs.oracle.com/de/java/javase/13/docs/api/java.base/java/nio/file/Path.html#of(java.lang.String,java.lang.String ... ) Verwenden Sie den gleichen Wortlaut. Sind sie tatsächlich identisch?
Path.of
wurde später eingeführt. Vermutung: Es wurde aus Gründen eines einheitlichen Foo.of
Stils eingeführt. In diesem Fall würde es aus Gründen der Konsistenz / Ästhetik als vorzuziehen angesehen?
Path.of
weil es keinen zusätzlichen Import erfordertAntworten:
In der Tat
Path.of
wurde später eingeführt.Aus dem Mailinglistenarchiv wurde diese Methode einmal aufgerufen
Path.get
:Dies wurde später geändert, als Brian Goetz vorschlug, dies zu vereinbaren mit
Foo.of
:Nun zu Ihrer letzten Frage: "In diesem Fall wird es aus Gründen der Konsistenz / Ästhetik als vorzuziehen angesehen?"
In der ersten Mail sagte Brian Burkhalter, dass er alle Verweise auf die neue Methode aktualisiert habe in
Path
:Ich würde daher zu dem Schluss kommen, dass dies
Path.of
in der Tat vorzuziehen istPaths.get
.Wenn Sie sich Javadoc
Paths
für Java 13 ansehen, finden Sie diesen Hinweis:quelle
Paths
. Durch die Verwendung der Factory-Methode der Schnittstelle wird die Anzahl der Typen reduziert, mit denen der Code umgehen muss. Der Benennungsstil ist nur ein weiterer Punkt, der überarbeitet wurde, da diese Gelegenheit bestand.