1

StringUtils如果它是反斜杠,我想重载 Chop 方法以删除最后一个字符(\)

是否可以重载函数或者我需要使用 if 条件?

4

2 回答 2

4

为什么不这样做呢?

StringUtils.removeEnd(s,"\\")
于 2018-06-15T20:12:35.577 回答
3

是的,使用if声明。您不能覆盖静态方法,而且为此创建它自己的类也太过分了。

我有一个我个人喜欢的替代方案:

public static String chopIf(Predicate<String> p, String s) {
    if (p.test(s)) {
        return s.substring(0, s.length()-1); //or StringUtils.chop(s)
    }
    return s;
}

public static void main(String[] args) {
    String test = "qwert\\";
    System.out.println(chopIf(s -> s.endsWith("\\"), test));
}

类似的东西。然后你可以将它用于任何角色。根据需要调整它。

于 2018-06-15T14:10:46.823 回答