将字段名称设置为 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;
    }
}

我希望方法名称为 getURLsetURL是我手动更改方法名称更好还是有其他方法?

注意: 如果我必须使用

搜索基于字段名称的方法
java.beans.BeanInfo
java.beans.IntrospectionException
java.beans.Introspector
java.beans.PropertyDescriptor

对于 url,它只会搜索 getUrlsetUrl

你应该编写 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 命名约定。