本帖最后由 qq379264347 于 2013-11-15 22:48 编辑
path应该是String类型的,判断他是不是null,是的话返回true,不是的话再判断它包含英文点"."不,不包含的话返回null,否则返回最后一次出现"."的位置,在+1.因为获取的位置是从0开始的。所以+1.看来返回的类型不是一种啊,难道返回的Object类型。
上面的是有点问题,现在做一下说明,||运算优先于 ? :运算,所以?左面的优先运行,||两边的是一体的。加上小括号就是这样子:
return (path == null || path.lastIndexOf(".") == -1) ? null : path.substring(path.lastIndexOf(".") + 1);
呵呵,真是的,把这细节都给忽略了。
附上JAVA运算符优先级表:
- 1 . [ ] ( )
- 2 ++ -- ! ~ instanceof
- 3 new (type)
- 4 * / %
- 5 + -
- 6 >> >>> <<
- 7 > < >= <=
- 8 == !=
- 9 &
- 10 ^
- 11 |
- 12 &&
- 13 ||
- 14 ? :
- 15 = += -= *= /= %= ^=
- 16 &= |= <<= >>= >>>=
复制代码 |