我主要是一名c/c++/objective-c程序员,目前在android应用程序上使用Java。我的问题很简单:我想要一个实用程序函数,最好不要与我可以从项目中任何地方调用的任何类相关联(#include of some sort necessary?)。
我知道我可以创建一个类的公共静态函数,并将其作为Class.someFunction();
调用。我只想有someFunction();
,我不确定这在java中是否可行,也不确定它的语法是什么。
您可以通过使用静态导入来实现相同的"效果",方法是在您想要使用它的每个文件中添加以下导入:
import static x.y.Class.someFunction; // or x.y.Class.*;
...
// some code somewhere in the same file
someFunction();
但是,Java中的所有方法都必须是类的一部分。静态导入只是让你假装(短暂地)不是这样。
第页。S.这也适用于静态场。
您可以使用静态导入:
import static com.example.MyUtilityClass.*; // makes all class methods available
// or
import static com.example.MyUtilityClass.myMethod; // makes specified method available
您不会经常使用这种方法,因为如果过度使用,会导致代码更难调试(请参阅上面链接的最后一段)。
这里有一个相关的问题,关于什么时候使用它是可取的。
此外,遵循编程最佳实践,您应该在一些实用程序类中定义所有这些常用的功能,您可以在其中定义将在API中的不同位置使用/调用的函数或字段(可能是常量,即静态和最终属性)。
尽管如此,您仍然需要导入Utility类。否则,在API层次结构中最顶部的父类中定义这样的功能,这样甚至不必导入该类。
希望这能有所帮助。谢谢
Yeap导入静态。。
例如:
import static java.lang.Math.max; // Allowing to use max method anywhere in the source
class SomeClass {
int m = max( 1, 2 );// m now is 2 due t Math.max( int, int )
}