Refleksija parametra metode u Javi
1. Pregled
Podrška za refleksiju parametara metode dodana je u Javi 8. Jednostavno rečeno, pruža podršku za dobivanje imena parametara tijekom izvođenja.
U ovom ćemo brzom vodiču pogledati kako pristupiti imenima parametara za konstruktore i metode u vrijeme izvođenja - koristeći refleksiju.
2. Argument sastavljača
Da bismo mogli dobiti pristup informacijama o nazivu metode, moramo se izričito prijaviti.
Da bismo to učinili, mi navedite parametri opcija tijekom kompilacije.
Za Maven projekt, ovu mogućnost možemo prijaviti u pom.xml:
org.apache.maven.plugins maven-compiler-plugin 3.1 1.8 1.8 -parametri
3. Primjer klase
Upotrijebit ćemo smišljeno Osoba klase s jednim svojstvom tzv puno ime demonstrirati:
javni razred Osoba {private String fullName; javna osoba (niz puno ime) {this.fullName = puno ime; } javna praznina setFullName (niz puno ime) {this.fullName = puno ime; } // ostale metode}
4. Upotreba
The Parametar Predavanje je novo u Javi 8 i ima niz zanimljivih metoda. Ako je -parametri pružena je opcija kompajlera, isNamePresent () metoda će vratiti true.
Da bismo pristupili imenu parametra, možemo jednostavno nazvati getName ():
@Test public void whenGetConstructorParams_thenOk () baca NoSuchMethodException, SecurityException {Parametri popisa = Arrays.asList (Person.class.getConstructor (String.class) .getParameters ()); Izborni parametar = parameters.stream (). Filter (Parameter :: isNamePresent) .findFirst (); assertThat (parameter.get (). getName ()). isEqualTo ("punoime"); } @Test public void whenGetMethodParams_thenOk () baca NoSuchMethodException, SecurityException {Parametri popisa = Arrays.asList (Person.class.getMethod ("setFullName", String.class) .getParameters ()); Izborni parametar = parameters.stream () .filter (Parameter :: isNamePresent) .findFirst (); assertThat (parameter.get (). getName ()). isEqualTo ("punoime"); }
5. Zaključak
U ovom smo kratkom članku pogledali novu podršku za refleksiju imena parametara koja su postala dostupna u Javi 8.
Najočitiji slučaj upotrebe ovih informacija je pomoć u implementaciji automatsko dovršavanja podrške unutar urednika.
Kao i uvijek, izvorni kod možete pronaći na Githubu.