O ile mogę powiedzieć Paths.get
i Path.of
wydaje się, że robię dokładnie to samo, zamieniając jeden lub więcej ciągów w Path
obiekt; dokumentacja https://docs.oracle.com/javase/8/docs/api/java/nio/file/Paths.html#get-java.lang.String-java.lang.String...- i https: //docs.oracle.com/en/java/javase/13/docs/api/java.base/java/nio/file/Path.html#of(java.lang.String,java.lang.String ... ) użyj tego samego sformułowania. Czy w rzeczywistości są identyczne?
Path.of
został wprowadzony później. Domysł: został wprowadzony ze względu na spójny Foo.of
styl. Czy w takim przypadku byłoby to preferowane ze względu na spójność / względy estetyczne?
Path.of
ponieważ nie wymaga dodatkowego importuOdpowiedzi:
Rzeczywiście,
Path.of
został później wprowadzony.Z archiwum listy mailingowej ta metoda została kiedyś wywołana
Path.get
:Zostało to później zmienione, gdy Brian Goetz zasugerował, że jest spójny z
Foo.of
:A teraz ostatnie pytanie: „Czy w takim przypadku byłoby to preferowane ze względu na spójność / względy estetyczne?”
W pierwszej wiadomości Brian Burkhalter powiedział, że zaktualizował wszystkie odniesienia do nowej metody w
Path
:W związku z tym
Path.of
doszłbym do wniosku, że rzeczywiście jest to lepsze niżPaths.get
.Rzeczywiście, jeśli spojrzysz na Javadoc for
Paths
for Java 13 , znajdziesz następującą notatkę:źródło
Paths
. Zastosowanie fabrycznej metody interfejsu zmniejsza liczbę typów, z którymi musi sobie radzić kod. Styl nazewnictwa to kolejny punkt, który został zmieniony, ponieważ istniała taka możliwość.