refactor example
This commit is contained in:
parent
543c87fa70
commit
d683b370f6
|
@ -2,41 +2,17 @@ package com.baeldung.reflect;
|
|||
|
||||
public class Person {
|
||||
|
||||
private String firstName;
|
||||
private String lastName;
|
||||
private Integer age;
|
||||
private String fullName;
|
||||
|
||||
public Person(String firstName, String lastName, Integer age) {
|
||||
this.firstName = firstName;
|
||||
this.lastName = lastName;
|
||||
this.age = age;
|
||||
public Person(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public Person() {}
|
||||
|
||||
public String getFirstName() {
|
||||
return firstName;
|
||||
public void setFullName(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public void setFirstName(String firstName) {
|
||||
this.firstName = firstName;
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public String getLastName() {
|
||||
return lastName;
|
||||
}
|
||||
|
||||
public void setLastName(String lastName) {
|
||||
this.lastName = lastName;
|
||||
}
|
||||
|
||||
public Integer getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(Integer age) {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -5,29 +5,30 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
import java.lang.reflect.Parameter;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
import org.junit.Test;
|
||||
|
||||
public class MethodParamNameTest {
|
||||
|
||||
@Test
|
||||
public void whenGetConstructorParams_thenOk() throws NoSuchMethodException, SecurityException {
|
||||
public void whenGetConstructorParams_thenOk()
|
||||
throws NoSuchMethodException, SecurityException {
|
||||
List<Parameter> parameters
|
||||
= Arrays.asList(
|
||||
Person.class.getConstructor(String.class, String.class, Integer.class)
|
||||
.getParameters());
|
||||
List<String> parameterNames
|
||||
= parameters.stream().map(Parameter::getName).collect(toList());
|
||||
assertThat(parameterNames)
|
||||
.containsExactlyInAnyOrder("lastName", "firstName", "age");
|
||||
= Arrays.asList(Person.class.getConstructor(String.class).getParameters());
|
||||
Optional<Parameter> parameter
|
||||
= parameters.stream().filter(Parameter::isNamePresent).findFirst();
|
||||
assertThat(parameter.get().getName()).isEqualTo("fullName");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenGetMethodParams_thenOk() throws NoSuchMethodException, SecurityException {
|
||||
public void whenGetMethodParams_thenOk()
|
||||
throws NoSuchMethodException, SecurityException {
|
||||
List<Parameter> parameters
|
||||
= Arrays.asList(
|
||||
Person.class.getMethod("setLastName", String.class).getParameters());
|
||||
assertThat(parameters.get(0).getName()).isEqualTo("lastName");
|
||||
Person.class.getMethod("setFullName", String.class).getParameters());
|
||||
Optional<Parameter> parameter
|
||||
= parameters.stream().filter(Parameter::isNamePresent).findFirst();
|
||||
assertThat(parameter.get().getName()).isEqualTo("fullName");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue