Autant que je sache, Paths.get
et Path.of
semble faire exactement la même chose, transformer une ou plusieurs cordes en un Path
objet; la documentation https://docs.oracle.com/javase/8/docs/api/java/nio/file/Paths.html#get-java.lang.String-java.lang.String...- et https: //docs.oracle.com/en/java/javase/13/docs/api/java.base/java/nio/file/Path.html#of(java.lang.String,java.lang.String ... ) utilisent le même libellé. Sont-ils en fait identiques?
Path.of
a été présenté plus tard. Conjecture: elle a été introduite dans un souci de cohérence Foo.of
. Dans ce cas, serait-il jugé préférable pour des raisons de cohérence / esthétique?
Path.of
car il ne nécessite pas d'importation supplémentaireRéponses:
En effet, a
Path.of
été introduit plus tard.À partir des archives de la liste de diffusion, cette méthode s'appelait autrefois
Path.get
:Cela a été changé plus tard lorsque Brian Goetz a suggéré qu'il soit conforme à
Foo.of
:Passons maintenant à votre dernière question: "Dans ce cas, cela serait-il jugé préférable pour des raisons de cohérence / esthétique?"
Dans le courrier initial, Brian Burkhalter a déclaré qu'il avait mis à jour toutes les références à la nouvelle méthode dans
Path
:Je conclurais donc que
Path.of
c'est effectivement préférable àPaths.get
.En effet, si vous regardez le Javadoc
Paths
pour Java 13, vous trouverez cette note:la source
Paths
. L'utilisation de la méthode d'usine de l'interface réduit le nombre de types que le code doit gérer. Le style de dénomination est juste un autre point qui a été révisé car il y avait cette opportunité.