首页 > 解决方案 > 命名空间导入库以在 Java 中清晰

问题描述

是否可以保留在 Java 中导入的方法的名称空间?我从技术和实践的角度想知道。

例如,假设我正在导入spark库,所以我可以使用它的get()方法,我可能会做类似的事情

import static spark.Spark.*;

public static void main(String[] args) {
    get(....);
    // do stuff
}

对于看到这个的人(尤其是当项目更大并且导入了一些东西时),“get()”的来源并不是很明显。我很想能够做这样的事情

import static spark.*;

public static void main(String[] args) {
    Spark.get(....);
    // do stuff
}

如您所见,该get()调用现在在视觉上命名为Spark.

这通常被认为是允许的,还是这种方法有缺点?如果是这样,为什么更多的项目不使用这种方法?

谢谢!

标签: javaimport

解决方案


在我看来,这完全取决于你真正使用的是什么——静态调用上的类名是可以的,但是当你经常使用某些东西时就会出现问题——因为这样你就涵盖了虚假感觉背后的逻辑。

另外我想说 get 对于静态方法来说是一个非常糟糕的名字——如果方法名有更多的含义,那么它们对类名的依赖就会减少——但是在这里我们在使用框架时别无选择。


推荐阅读