1700438910
1700438911
//断言
1700438912
1700438913
assertEquals(“foo”,“foo”);
1700438914
1700438915
assertFalse(Boolean.FALSE);
1700438916
1700438917
}
1700438918
1700438919
}
1700438920
1700438921
我们从程序中很容易判断出assertEquals方法是用来断言两个值是否相等的,assertFalse方法则是断言表达式为假,如此确实减少了代码量,而且代码的可读性也提高了,这也是静态导入用到正确地方所带来的好处。
1700438922
1700438923
1700438924
1700438925
1700438927
编写高质量代码:改善Java程序的151个建议 建议10:不要在本类中覆盖静态导入的变量和方法
1700438928
1700438929
如果一个类中的方法及属性与静态导入的方法及属性重名会出现什么问题呢?我们先来看一个正常的静态导入,代码如下:
1700438930
1700438931
import static java.lang.Math.PI;
1700438932
1700438933
import static java.lang.Math.abs;
1700438934
1700438935
public class Client{
1700438936
1700438937
public static void main(String[]args){
1700438938
1700438939
System.out.println(“PI=”+PI);
1700438940
1700438941
System.out.println(“abs(100)=”+abs(-100));
1700438942
1700438943
}
1700438944
1700438945
}
1700438946
1700438947
很简单的例子,打印出静态常量PI值,计算-100的绝对值。现在的问题是:如果我们在Client类中也定义了PI常量和abs方法,会出现什么问题?代码如下:
1700438948
1700438949
import static java.lang.Math.PI;
1700438950
1700438951
import static java.lang.Math.abs;
1700438952
1700438953
public class Client{
1700438954
1700438955
//常量名与静态导入的PI相同
1700438956
1700438957
public fnal static String PI=“祖冲之”;
1700438958
1700438959
//方法名与静态导入的相同
[
上一页 ]
[ :1.70043891e+09 ]
[
下一页 ]