Uri ng utility/paraan

Ang utility class ay isang helper class na may mga static na variable at static na pamamaraan na gumaganap ng isang partikular na listahan ng mga kaugnay na gawain.

Tingnan natin ang mga halimbawa ng mga karaniwang klase ng utility:

java.lang.Math Ang klase na ito, na maaaring magsagawa ng maraming iba't ibang mga kalkulasyon sa matematika, ay nagbibigay sa amin ng ilang mathematical constants.
java.util.Arrays Ang klase ay naglalaman ng iba't ibang mga pamamaraan para sa pagtatrabaho sa mga array (tulad ng pag-uuri at paghahanap sa kanila). Ang klase na ito ay mayroon ding static na pabrika na nagbibigay-daan sa amin na tingnan ang mga array bilang mga listahan.
java.lang.System Ang klase na ito ay nagpapatupad ng mga pamamaraan para sa pagtatrabaho sa system. Kadalasan ginagamit namin ito upang magpakita ng teksto sa console. Upang gawin ito, tinutukoy namin ang staticpalabasvariable, na nag-iimbak ng isang PrintStream object, at tinatawag ang println method nito ( System.out.println ).

Maaari din tayong lumikha ng isang utility class sa ating sarili: para magawa ito, gumawa lang tayo ng klase na may mga static na pampublikong pamamaraan na kailangan natin. Ngunit tandaan na dapat kang magkaroon ng isang magandang dahilan para sa paglikha ng isang utility class. Halimbawa, marahil ay kailangan mong gumamit ng parehong paraan o hanay ng mga pamamaraan upang maisagawa ang isang gawain (tulad ng isang kumplikadong pagkalkula) sa maraming iba't ibang klase.

Tingnan natin ang isang halimbawa ng isang utility class — ang Paths class.

Paths class

Binubuo ang klase na ito ng isang static get method na may dalawang variant na may magkakaibang listahan ng parameter.

Ang mga argumento na maaari naming ipasa sa get method ay:

get(String muna, String... more) Isang buong landas o isang listahan ng mga pangalan ng mga direktoryo at (o) ang file sa huling argumento.
makakuha ng(URI uri) Isang URI.

Ang utility class na ito ay malulutas ang problema ng pag-convert ng isang path (sa anyo ng isang string) o URI sa isang Path . Na-explore na namin ang Path at naiintindihan namin kung bakit namin ito kailangan at kung paano namin ito magagawa.

Habang nangyayari ito, madalas tayong makitungo sa mga path sa anyo ng mga String o URI. Dito natin magagamit ang mga pamamaraan ng Paths utility class.

Tingnan natin ang mga halimbawa:

Halimbawa Magkomento

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    
Ipinapasa namin ang get method a String (ang path sa file) at kumuha ng Path . Pagkatapos ay maaari nating gawin ito kung kinakailangan.

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    
Ang isang Path ay maaari ding makuha mula sa isang URI.

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    
Ipinapahiwatig namin ang pagkakasunud-sunod ng mga pangalan ng direktoryo at ang pangalan ng file na ang landas ay nangangailangan.

Ngunit mayroong isang caveat dito. Sa pagdating ng Java 11, ang anumang pagpapatupad ng get method ay tumatawag sa Path.of .


public static Path get(String first, String... more) {
    return Path.of(first, more);
}
 
public static Path get(URI uri) {
    return Path.of(uri);
}
    

Maaaring ideklarang hindi na ginagamit ang utility class na ito, kaya dapat nating gamitin ang Path.of sa halip.

dati Pagkatapos

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    

Path path =
Path.of("C:\\Users\\User\\Documents\\MyFile.txt");
                    

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    

Path path = Path.of(URI.create("file:///Users/User/Code/MyClass.java"));
                    

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    

ath path = Path.of(System.getProperty("user.home"),"documents", "document.txt");