
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条)