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;
}
}
}