1

今天是个好日子。我正在使用 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>

所以这是我的问题 - 如果出现以下情况,我应该怎么做才能获得正确的方法签名:

  1. 我无法更改该 bean 的源代码
  2. 我无法更改 Vaadin 的源代码
4

0 回答 0