2021SC@SDUSC
**内容非常主观,可能出现错漏,慎重参考
_DelayedJoinWithComma.java
package freemarker.core; public class _DelayedJoinWithComma extends _DelayedConversionToString { public _DelayedJoinWithComma(String[] items) { super(items); } @Override protected String doConversion(Object obj) { String[] items = (String[]) obj; int totalLength = 0; for (int i = 0; i < items.length; i++) { if (i != 0) totalLength += 2; totalLength += items[i].length(); } StringBuilder sb = new StringBuilder(totalLength); for (int i = 0; i < items.length; i++) { if (i != 0) sb.append(", "); sb.append(items[i]); } return sb.toString(); } }
重写doConversion,用for循环记录items数组的长度,在每个元素后加“,”
_DelayedJQuote.java
package freemarker.core; import freemarker.template.utility.StringUtil; public class _DelayedJQuote extends _DelayedConversionToString { public _DelayedJQuote(Object object) { super(object); } @Override protected String doConversion(Object obj) { return StringUtil.jQuote(_ErrorDescriptionBuilder.toString(obj)); } }
引用父类的object,重写doConversion
_DelayedOrdinal.java
package freemarker.core; public class _DelayedOrdinal extends _DelayedConversionToString { public _DelayedOrdinal(Object object) { super(object); } @Override protected String doConversion(Object obj) { if (obj instanceof Number) { long n = ((Number) obj).longValue(); if (n % 10 == 1 && n % 100 != 11) { return n + "st"; } else if (n % 10 == 2 && n % 100 != 12) { return n + "nd"; } else if (n % 10 == 3 && n % 100 != 13) { return n + "rd"; } else { return n + "th"; } } else { return "" + obj; } } }
是_DelayedConversionToString的子类,重写doConversion方法,用if语句来判断
_DelayedShortClassName.java
package freemarker.core; import freemarker.template.utility.ClassUtil; public class _DelayedShortClassName extends _DelayedConversionToString { public _DelayedShortClassName(Class pClass) { super(pClass); } @Override protected String doConversion(Object obj) { return ClassUtil.getShortClassName((Class) obj, true); } }
是_DelayedConversionToString的子类,引用pClass,重写doConversion,返回ClassUtil的类名
_DelayedToString.java
package freemarker.core; public class _DelayedToString extends _DelayedConversionToString { public _DelayedToString(Object object) { super(object); } public _DelayedToString(int object) { super(Integer.valueOf(object)); } @Override protected String doConversion(Object obj) { return String.valueOf(obj); } }
是_DelayedConversionToString的子类,引用object,重写doConversion
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)