作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个简单的界面:
public interface HasId<ID extends Serializable> extends Serializable {
T getId();
}
和
public interface HasLongId extends HasId<Long> {
void setId(Long id);
}
现在,如果我有课:
public class Person implements HasLongId {
private Long id;
private String name;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
我实例化了一个 person
,然后将其传递给 BeanUtils
我得到了奇怪的行为。例如,有时使用 BeanUtils 设置 id 效果很好,而有时,我会收到异常,因为它找不到 Id 的“write”方法。似乎在反射过程中它找到了 Serialized 的 getter,但没有找到 Long,并且没有找到 Serialized 的 setter。它并没有一致地执行此操作,因此我怀疑调用 person.getClass().getDeclaredMethod("id") 并不总是返回相同的方法,但我可能是错的。
无论如何,这种不一致的行为确实令人抓狂,因为,例如,它可以在 Eclipse 中工作,但不能在 Maven 中工作,或者它将工作很长时间,然后在其他地方进行一些不相关的更改,它将停止工作。
显然我对泛型的理解还不够深入,无法理解正在发生的事情,但是任何人都可以向我解释它并解释如何解决它吗?
最佳答案
我使用的 Apache Commons BeanUtils 版本不支持 Java 5,因此它不了解泛型、桥接方法等。我相信这就是问题所在,您使用的是哪个版本的 BeanUtils?它支持 Java 5+ 吗?
关于java - 我如何将泛型与 commons beanutils 一起滥用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492130/
我是一名优秀的程序员,十分优秀!