Paths.get と Path.of 質問する

Paths.get と Path.of 質問する

私の知る限り、 1つまたは複数の文字列をオブジェクトに変換するPaths.getというPath.ofまったく同じことを行うようですPathPaths.getそしてPath.of同じ言葉遣いを使用しています。それらは実際に同一ですか?

Path.of後に導入されました。

推測:それは一貫したスタイルのために導入されましたFoo.of。その場合、一貫性/美的観点から好ましいと考えられますか?

ベストアンサー1

確かに、Path.of後に導入されました。

推測: 一貫したスタイルのために導入されましたFoo.of

メーリングリストのアーカイブから、メソッドはかつて呼ばれたPath.get:

主な変更点は、java.nio.file の Path と Paths にあります。

このパッチは、Paths.get() メソッドを Path.get() の静的メソッドにコピーし、前者を後者のそれぞれのメソッドを呼び出すように変更します。Path 仕様は、Path やそれ自身を参照しないように少し整理されています (例: “(see Path)”)。@implSpec アノテーションが Path に追加され、メソッドが Path 内の対応するメソッドを単に呼び出すことを示します
。...

これは後に変更されました。ブライアン・ゲッツは、Foo.of:

これとは別に、Brian Goetz は、これらのファクトリ メソッドの名前を「of」にすると一貫性が増すだろうとリスト外で提案したので、それがどのように見えるかを確認するために webrev が更新されると思います。

さて、最後の質問です。「その場合、一貫性や美観の観点から好ましいと考えられるでしょうか?
最初のメールBrian Burkhalter 氏は、 の新しいメソッドに関するすべての参照を更新したと述べていますPath

java.base 内のすべてのソース ファイルが変更され、Paths.get() が Path.get() に変更され、Paths のインポートが削除されます。...

したがって、私は がPath.ofよりも確かに好ましいと結論づけますPaths.get
実際、PathsJava 13 のJavadoc次のメモが見つかります:

API ノート:このクラスは将来のリリースで非推奨になる可能性があるため、このクラスで定義されたメソッドではなく、 メソッドを介して
を取得することをお勧めします。PathPath.ofget

おすすめ記事