传智播客---父类委托机制。注解。

1.

当程序里面抛出ClassCastException有可能是没有父类委托机制

删除lib目录里面的jar。因为lib目录有可能跟原来j2ee里面自带的包冲突。,为了让编译通过,删除lib目录里面的jar是在编译后,删除的

2.

注解。

反射机制.

 

 

例子:

通过字段上注释的信息,注入一个对象

@Inject(name="老张",age=34,password="234")
 public void setPerson(Person person) {
  this.person = person;
 }

 

 

private static void field() throw Exception()

{

    PersonDao dao = new PersonDao();

    Field fields[] = Person.class.getDeclaredFields();

    for(Field f:field)

   {

        Inject inject = f.getAnnotation(Inject.class)

         if(inject!=null)

        {

              Class beanClazz = f.getType();

              Object bean = beanClazz.newInstance();

              annotation2Bean(inject,bean);

              f.setAccessible(true);

              f.set(dao,bean);

 

 

 

 

 

         }

   }

 

}

 

 

 

 private static void annotation2Bean(Inject inject, Object bean) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
  Method methods[] = inject.getClass().getMethods();
  for(Method m : methods){
   String name = m.getName();  //得到注解的所有的属性名称 age() name()
   try {
    PropertyDescriptor pd = new PropertyDescriptor(name,bean.getClass());
    pd.getWriteMethod().invoke(bean, m.invoke(inject, null));
   } catch (IntrospectionException e) {
    continue;
   }
  }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值