【发布时间】:2014-04-28 14:26:28
【问题描述】:
我有这样的课
public class Student
{
private String reference;
private String aPlaceAt;
//methods generate by Netbeans Eclipse generates the same methods
public String getaPlaceAt(){return aPlaceAt;}
public void setaPlaceAt(String aPlaceAt){this.aPlaceAt = aPlaceAt;}
public String getReference(){return reference;}
public void setReference(String reference){this.reference = reference;}
}
稍后我需要通过 reflection 找到每个属性的 setter 和 getter,我正在使用以下代码
public Method findSetterFor(final Class clazz,final String propertyName) throws Exception
{
return new PropertyDescriptor(propertyName,clazz).getWriteMethod();
}
for(final Field field:clazz.testClazz.getDeclaredFields())
System.out.println(field.getName()+" "+clazz.findSetterFor(clazz.testClazz,field.getName()));
他们返回正确的设置器以供参考,但对于属性 aPlaceAt
抛出
Exception in thread "main" java.beans.IntrospectionException: Method not found: isAPlaceAt
为什么是APlaceAt?不应该是
public void setaPlaceAt(String aPlaceAt){this.aPlaceAt = aPlaceAt;}?
或者为什么我做错了?怎样才能做到谢谢?
我认为 setter 和 getter 是根据 SO 上的其他帖子和此链接正确生成的
方法由Netbeans and Eclipse and intellij生成
更新 这是另一个关于它的热门论坛,同样的问题,请检查一下
【问题讨论】:
标签: java reflection setter getter