public class aa {
public static<T extends AbstractVo> T rtrimVoString(T vo){
Class<?> clazz = vo.getClass();
Field[] fields = clazz.getDeclaredFields();
Method setMethod = null;
Method getMethod = null;
for(Field f : fields){
class tc = f.getType();
try{
if(String.class.isAssignableFrom(tc)){
String itemName = titleCase(f.getName());
getMethod = clazz.getMethod("get"+itemName);
setMethod = clazz.getMethod("set"+itemName, String.class);
String val = (String)getMethod.invoke(vo);
setMethod.invoke(vo, trimRight(val));
}else if(AbstractVo.class.isAssignableForm(tc)){
String itemName = titleCase(f.getName());
getMethod = clazz.getMethod("get"+itemName);
setMethod = clazz.getMethod("set"+itemName, tc);
AbstractVo abstractVo = (AbstractVo)getMethod.invoke(vo);
rtrimVoString(abstractVo);
setMethod.invoke(vo, abstractVo);
}
}catch (Excetption e){
e.printStackTrace();
}
return vo;
}
}
public static String trimRight(String s){
String sResult = "";
if(s.startsWith(" ")){
if(s.trim().length()==0){
sResult = "";
}else {
sResult = s.substring(0,s.indexOf(s.trim().substring(0,1)+s.trim().length()));
}
}else {
sResult = s.trim();
}
return sResult;
}
public static String titleCase(String s){
char[] c = s.toCharArray();
if((c[0] >= 'a') && (c[0] <= 'z') ){
c[0] = Character.toChars(Character.valueOf(c[0]) - 32)[0];
}
return new String(c);
}
循环级联tirm()带有子类的java类
本文介绍如何在Java中使用泛型和反射,针对继承自AbstractVo的对象,实现字段值的trim操作,包括字符串类型和抽象子类的处理。主要涉及`trimRight`方法,用于去除字符串右侧空格,以及`titleCase`方法,转换首字母大写。
摘要由CSDN通过智能技术生成