将字段名称设置为 URL 以获得正确的 getter 和 setter 会给出 Checkstyle 错误
Setting field name as URL for proper getter and setter gives Checkstyle error
可能是个愚蠢的问题,但就是想问一下。
我有一个 Java class 和一些字段,它是 getter 和 setter。
public class Parameters {
private String URL;
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
}
Checkstyle 会报错
Name 'URL' must match pattern '^[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();
}
}
}
是的,您必须手动完成,或者您可以将字段名称更改为 URL,但在这种情况下,您将不会遵循 Java 命名约定。
可能是个愚蠢的问题,但就是想问一下。 我有一个 Java class 和一些字段,它是 getter 和 setter。
public class Parameters {
private String URL;
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
}
Checkstyle 会报错
Name 'URL' must match pattern '^[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();
}
}
}
是的,您必须手动完成,或者您可以将字段名称更改为 URL,但在这种情况下,您将不会遵循 Java 命名约定。