JAVABEANS错误找不到符号

JAVABEANS error cannot find symbol

我尝试对 属性 的 set/get 值使用 属性 的 javabean 反射。属性。

当我尝试编译这段代码时

class TestReflection
{
    public TestReflection()
    {
    }

    private Integer field;

    public Integer getField()
    {
        return this.field;
    }

    public void setField(Integer x)
    {
        this.field = x;
    }

}

//  .
//  .
//  .


TestReflection ref = new TestReflection();
Object value = new PropertyDescriptor("field",
    ref.class).getReadMethod().invoke(ref); // ERROR

我收到这个错误:

Test.java:84: error: cannot find symbol
                            ref.class).getReadMethod().invoke(ref);
  symbol: class ref

我该如何修复该错误?

ref.class替换为ref.getClass():

new PropertyDescriptor("field", ref.getClass())

class字面值.class只适用于该类型,不适用于该类型的变量,即:

new PropertyDescriptor("field", TestReflection.class)

请注意,这就是编译器抛出 cannot find symbol 错误的原因:当遇到 X.class 时,它会尝试搜索 class 或名为 X 的类型.

使用 ref.getClass() 方法代替 ref.class.