可能是一个愚蠢的问题,但只想问一个问题。
我有一个带有某些字段的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;
    }
}


我希望方法名称为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();
}
}
}

关于java - 将字段名称设置为URL以获得正确的getter和setter会产生Checkstyle错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31935320/

10-09 00:31