1700438866
1700438867
public class Client{
1700438868
1700438869
//输入半径和精度要求,计算面积
1700438870
1700438871
public static void main(String[]args){
1700438872
1700438873
double s=PI*parseDouble(args[0]);
1700438874
1700438875
NumberFormat nf=getInstance();
1700438876
1700438877
nf.setMaximumFractionDigits(parseInt(args[1]));
1700438878
1700438879
formatMessage(nf.format(s));
1700438880
1700438881
}
1700438882
1700438883
//格式化消息输出
1700438884
1700438885
public static void formatMessage(String s){
1700438886
1700438887
System.out.println(“圆面积是:”+s);
1700438888
1700438889
}
1700438890
1700438891
}
1700438892
1700438893
就这么一段程序,看着就让人火大:常量PI,这知道,是圆周率;parseDouble方法可能是Double类的一个转换方法,这看名称也能猜测到。那紧接着的getInstance方法是哪个类的?是Client本地类?不对呀,没有这个方法,哦,原来是NumberFormate类的方法,这和formateMessage本地方法没有任何区别了—这代码也太难阅读了,非机器不可阅读。
1700438894
1700438895
所以,对于静态导入,一定要遵循两个规则:
1700438896
1700438897
不使用*(星号)通配符,除非是导入静态常量类(只包含常量的类或接口)。
1700438898
1700438899
方法名是具有明确、清晰表象意义的工具类。
1700438900
1700438901
何为具有明确、清晰表象意义的工具类?我们来看看JUnit 4中使用的静态导入的例子,代码如下:
1700438902
1700438903
import static org.junit.Assert.*;
1700438904
1700438905
public class DaoTest{
1700438906
1700438907
@Test
1700438908
1700438909
public void testInsert(){
1700438910
1700438911
//断言
1700438912
1700438913
assertEquals(“foo”,“foo”);
1700438914
1700438915
assertFalse(Boolean.FALSE);
[
上一页 ]
[ :1.700438866e+09 ]
[
下一页 ]