Java中的非类函数



我主要是一名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 ) 
}

相关内容

  • 没有找到相关文章

最新更新