我知道它根本没有意义,但这只是我的实验.有3种类型(据我所知)支持方法substring().我不想制作这样的通用方法:
public static <T extends String & StringBuilder & StringBuffer> T substr3(T str) {
if (str.length() > 3) {
return (T) str.substring(0, 3);
}
return str;
}
Run Code Online (Sandbox Code Playgroud)
它不会像这样编译,因为您可以根据需要使用尽可能多的接口,但只能使用一个类作为有界类型.这种方法应该工作正常此3种类型:String,StringBuilder,StringBuffer但问题是:如何设置3种类型的约束类型?
Men*_*ena 13
为什么不简单extend CharSequence?
public static <T extends CharSequence> T substr3(T str) {
if (str.length() > 3) {
return (T) str.subSequence(0, 3);
}
return str;
}
Run Code Online (Sandbox Code Playgroud)
注意
CharSequence不声明任何substring方法,但subSequence应提供相同的功能.
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |