在java5中添加的一个新特性就是static import(静态导入?)通过静态导入我们可以很方便的使用在其他类中定义的函数。如下面的代码所示,我们可以直接的使用java.lang.Math 的min和max以及其他在java.lang.Math中所定义的静态方法,只需要在import中添加一句import static java.lang.Math.*。这是一个很方便的功能。
但是这个功能却不能滥用。因为它会导致代码的可读性变得很差。考虑一下一个未曾接触过java.lang.Math类的读者来看这段代码。当他读到“int min=min(3,4)”,他会很迷惑,这个min函数到底是在哪里定义的呢?于是他就得去分析import这里。这段代码还好说,只有一个类被静态导入,只需要打开 java.lang.Math的文档就可以直接了解这些方法的相关信息了。但是如果同时静态导入了10个类的情况下呢?如果这些类中有着名字类似(相同)但是行为却不一致的方法的时候呢?比如Person.eat(Food food)和 Animal.eat(Food food)。
那么这个功能该如何用呢?我认为一些常用的工具类、全局变量类等当需要在一个类中多次使用的时候可以导进来,但是对于系统中的模型类或者是用的次数不多的工具类还是不要导入的好。我们需要在自己写代码时的方便和代码本身的可读性间做个权衡。
Powered by: BlogJava Copyright © Justfly Shi