碰到一个任务, 需要根据注解来创建一个新对象,而不能使用new关键字. 在取得注解的内容后,不知道如何根据注解内容来生成一个新的User对象?
[code="java"]package annopractise;
import java.lang.reflect.Field;
public class UserAnnoTest {
@UserAnno(id = 13, name = "sanan")
public User user;
public UserAnnoTest() throws ClassNotFoundException {
Class<?> cl = UserAnnoTest.class;
for (Field field : cl.getFields()) {
UserAnno userAnno = field.getAnnotation(UserAnno.class);
if (userAnno != null) {
[color=red]// 此处该如何继续, 这里已经得到注解内容, 但是不知道如何创建User对象[/color]
}
}
}
@Override
public String toString() {
return user.toString();
}
public static void main(String[] args) throws ClassNotFoundException {
UserAnnoTest annoTest = new UserAnnoTest();
System.out.println(annoTest);
}
}[/code]
User和UserAnno的代码如下:
[code="java"]package annopractise;
public class User {
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "id: " + id + "\tname: " + name + "\n";
}
}[/code]
[code="java"]package annopractise;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserAnno {
int id();
String name() default "";
}[/code]