JAVABEANS错误找不到符号

时间:2015-04-06 11:28:41

标签: java reflection javabeans

我尝试使用javabeans反射来获取该属性名称的属性的set / get值。

当我尝试编译此代码时

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

如何修复该错误?

2 个答案:

答案 0 :(得分:0)

ref.class替换为ref.getClass()

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

类文字.class仅适用于类型,而不是该类型的变量,即:

new PropertyDescriptor("field", TestReflection.class)

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

答案 1 :(得分:0)

使用ref.getClass()方法而不是ref.class。