[英]java get getter/setter name from property name
I have some like this:我有一些这样的:
String getterName = "get"+StringUtils.capitalize(propertyName);
Method methodLabel = item.getClass().getMethod(getterName);
I know that this does not always work because properties like: "X" "x" etc... are diferent rules.我知道这并不总是有效,因为像“X”、“x”等属性是不同的规则。
¿is there a method in the JAVA API to pass name property to getter/setter name? ¿ JAVA API 中是否有方法将名称属性传递给 getter/setter 名称?
I don't want to use: PropertyDescriptor.我不想使用:PropertyDescriptor。 It requires to work both setter and getter.它需要同时使用 setter 和 getter。
EDIT:编辑:
What I want is this:我想要的是这样的:
String propertyName ="money";
String getterPropertyNameByConventionJava = ConvertPropertyNameToGetterName(propertyName);
System.out.println(getterPropertyNameByConventionJava);
//prints getMoney or getMoney() anyway.
I have made my own solution since I see that there is not official implementation:因为我看到没有官方实施,所以我已经制定了自己的解决方案:
public static void main(String[] args) throws Exception {
System.out.println("get"+cuerpoGetterSetter("probando0"));
System.out.println("get"+cuerpoGetterSetter("x"));
System.out.println("get"+cuerpoGetterSetter("X"));
System.out.println("get"+cuerpoGetterSetter("URL"));
System.out.println("get"+cuerpoGetterSetter("xIndex"));
}
public static String cuerpoGetterSetter(String propiedad) {
if (propiedad == null || propiedad.length() == 0) {
return propiedad;
}
if (propiedad.length() == 1) {
return propiedad.toUpperCase();
}
if (Character.isUpperCase(propiedad.charAt(0))) {
return propiedad;
}
if (propiedad.length() > 1 && Character.isUpperCase(propiedad.charAt(1))) {
return propiedad;
}
return propiedad.substring(0, 1).toUpperCase() + propiedad.substring(1, propiedad.length());
}
Results:结果:
getProbando0
getX
getX
getURL
getxIndex
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.