我有一个课程如下
class Myclass{
//no instance variables
static boolean validate(MyObj oj){
//impl
}
}
Myclass.validate(param)
,它会正常工作吗?如果是/否,怎么样?答案 0 :(得分:2)
如果您没有任何实例变量,则可以使用实用程序类。
public enum Utility {;
public static boolean validate(MyObj obj) ....
}
然而,更好的方法是将方法移动到第一个参数类型,如果可以的话。
public class MyObj {
public boolean validate() ....
}
MyObj
类型,则可以选择实用程序类。答案 1 :(得分:1)
1-调用是安全的,因为obj
参数是方法的本地参数。但是要确保
2-对于没有任何状态的类,可以使用静态方法。
答案 2 :(得分:0)
答案 3 :(得分:0)
您的用例非常适合实用类,并且实用程序类方法是静态的,这将有助于您在不实例化的情况下使用该类(因此避免了对象乱丢垃圾和GC开销)。 由于您使用任何共享变量(类变量),因此线程安全不是问题。所以你这样安全。
所以#1和2#都能正常工作。