Java 반사의 두 가지 사용 방법(권장)
package com.tao.test;
public class User {
private String name;
private int id;
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
2. main 방법
package com.tao.test;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
public class test {
public static void main(String[] args) throws Exception, SecurityException {
// Constructor<?>
Constructor<?> a = User.class.getDeclaredConstructor();
a.setAccessible(true);
User b = (User)a.newInstance();
b.setId(1);//id
b.setName("test");//name
System.out.println(b.getId()+" "+b.getName());
// Class<?>
Class<?> c = Class.forName("com.tao.test.User");
Field idF = c.getDeclaredField("id");//id
idF.setAccessible(true);
Object o = c.newInstance();
idF.set(o, 2);
Field nameF = c.getDeclaredField("name");//name
nameF.setAccessible(true);
Object name = c.newInstance();
nameF.set(name, "jack");
System.out.println(idF.get(o)+" "+nameF.get(name));
// new
User user = new User();
user.setId(3);
user.setName("tery");
System.out.println(user.getId()+" "+user.getName()+" "+user.getClass());
}
}
3. 콘솔 출력:test
jack
tery class com.tao.test.User
총결산
위에서 말한 것은 편집자가 여러분께 소개한 자바 반사의 두 가지 사용 방법입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 답장을 드리겠습니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.