可能是一个愚蠢的问题,但只想问一个问题。
我有一个带有某些字段的Java类,它是getter和setter。
public class Parameters {
private String URL;
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
}
Checkstyle将给出错误,因为
名称“ URL”必须与模式“ ^ [a-z] [a-zA-Z0-9] * $”匹配。
因此,我更改为
url
并使用Eclipse生成了getter和setter方法。public class Parameters {
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
我希望方法名称为
getURL
和setURL
。手动更改方法名称会更好还是还是有其他方法?
注意:
如果我必须使用基于字段名称的方法来搜索
java.beans.BeanInfo
java.beans.IntrospectionException
java.beans.Introspector
java.beans.PropertyDescriptor
对于
url
,它将仅搜索getUrl
和setUrl
。 最佳答案
您应该编写getter和setter。或者更好-让您的IDE自动生成它们。否则,您将破坏封装。
(可选)您可以使用http://projectlombok.org/并使用注释将其编写为:
@Getter @Setter
private String name;
代码生成在编译时完成。
看看This网站
编辑:-
例:
public class Test {
protected double WIDTH;
public double getWidTh() {
return WIDTH;
}
public void setWidTh(double wIDTH) {
WIDTH = wIDTH;
}
public static void main(String []args){
Test t = new Test();
t.setWidTh(2);
Object c = t;
Class klazz = c.getClass();
try {
for (PropertyDescriptor propertyDescriptor : Introspector
.getBeanInfo(klazz).getPropertyDescriptors()) {
Method m = propertyDescriptor.getReadMethod();
if (m != null)
System.out.println(m.invoke(c));
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
}
}
}
关于java - 将字段名称设置为URL以获得正确的getter和setter会产生Checkstyle错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31935320/