标签:java String Autowired 初始值 UserInfo import IOC public
创建@Autowired注解
package com.zzj.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //设置范围和生存周期 @Target({ElementType.TYPE,ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface Autowired { }
创建UserInfo并且为添加了@Autowired的成员变量赋值
package com.zzj.test; import java.lang.reflect.Field; import java.util.Date; //UserInfo类含有两个成员变量 class UserInfo{ @Autowired private Date birth; @Autowired private String name; public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public String getName() { return name; } public void setName(String name) { this.name = name; } } //给有AutoWired注释的成员变量赋值 public class Test { public static void main(String[] args)throws Exception{ Class clazz = UserInfo.class; //反射创建userinfo对象 Object object = clazz.newInstance(); //获取成员变量 Field[] fields = clazz.getDeclaredFields(); for(Field field: fields){ //获取成员变量上的注释,如果有autowired注释则赋初始值 Autowired autowired = field.getAnnotation(Autowired.class); if(autowired != null){ //获取成员变量的类型 clazz = field.getType(); //调用类型的默认构造方法String是"",Date是当前时间 Object value = clazz.newInstance(); //私有成员变量解锁权限 field.setAccessible(true); //设置初始值, field.set(object, value); } } //类型强转,并输出确认结果 UserInfo ui = (UserInfo)object; System.out.println(ui.getName()); System.out.println(ui.getBirth()); } }
输出结果如下(由于String初始值为”“所以第一行为空)
标签:java,String,Autowired,初始值,UserInfo,import,IOC,public 来源: https://www.cnblogs.com/yimengxianzhi/p/12207814.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。