今天是个好日子。我正在使用 Vaadin,但 BeanItemContainer 有问题。我有一个通用接口和一个实现该接口的 bean
package ru.package.testpackage;
public class SomeTest {
interface SomeHavingId<T> {
T getId();
void setId(T id);
}
class TestBean implements SomeHavingId<Integer> {
public TestBean(Integer id) {
this.id = id;
}
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
private Integer id;
}
}
问题是 Vaadin 内部BeanItemContainer
使用Introspector.getBeanInfo(TestBean.class)
解析 setter 和 getter 来创建属性映射。但不是解决一个Integer getId()
I get java.lang.Object getId()
。据我所知,Introspector 无法理解正在实现的接口SomeHavingId<Integer>
。
所以这是我的问题 - 如果出现以下情况,我应该怎么做才能获得正确的方法签名:
- 我无法更改该 bean 的源代码
- 我无法更改 Vaadin 的源代码