Class 객체를 통해 객체를 얻는 방법은 class.newInstance()를 통해 객체를 얻고 기본 구성 매개변수를 호출하여 객체를 인스턴스화하는 것입니다.
1 /** 2 * Created by hunt on 2017/6/27. * 测试的实体类 4 * @Data 编译后会自动生成set、get、无惨构造、equals、canEqual、hashCode、toString方法 5 */ 6 @Data 7 public class Person { 8 private String name; 9 private int age;10 }
1 /** 2 * Created by hunt on 2017/6/27. 3 */ 4 public class NewInstanceTest { 5 public static void main(String[] args) { 6 Class<Person> personClass = Person.class;//获取Class实例 7 try { 8 Person p = personClass.newInstance();//通过Class获得Person实例 9 p.setAge(28);10 p.setName("hunt");11 System.out.println(p);12 } catch (InstantiationException e) {13 e.printStackTrace();14 } catch (IllegalAccessException e) {15 e.printStackTrace();16 }17 }18 }
팁: class.newInstance()는 매개변수 없는 생성자를 통해 인스턴스화됩니다. 객체에는 기본적으로 매개변수 없는 생성자가 있으면 매개변수 없는 생성자는 더 이상 존재하지 않습니다. 리플렉션을 통해 객체를 얻을 때 java.lang.InstantiationException 예외가 발생합니다.
1 /** 2 * Created by hunt on 2017/6/27. 3 * 测试的实体类 4 */ 5 6 public class Person { 7 private String name; 8 private int age; 9 10 public String getName() {11 return name;12 }13 14 public int getAge() {15 return age;16 }17 18 public void setName(String name) {19 this.name = name;20 }21 22 public void setAge(int age) {23 this.age = age;24 }25 26 public Person(String name,int age){}//有参数构造函数27 }
1 /** 2 * Created by hunt on 2017/6/27. 3 */ 4 public class NewInstanceTest { 5 public static void main(String[] args) { 6 Class<Person> personClass = Person.class;//获取Class实例 7 try { 8 Person p = personClass.newInstance();//通过Class获得Person实例 9 p.setAge(28);10 p.setName("hunt");11 System.out.println(p.getAge()+"----"+p.getName());12 } catch (InstantiationException e) {13 e.printStackTrace();14 } catch (IllegalAccessException e) {15 e.printStackTrace();16 } } }
요약: 나중에 엔터티 클래스를 만들 때 리플렉션을 사용할 때 개체를 인스턴스화할 때 예외가 발생하지 않도록 인수 없는 생성자를 가져와야 합니다.
위 내용은 Class 클래스를 통해 객체를 얻는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!