static classjava中有类似的东西吗?
这类课的意义是什么.静态类的所有方法都需要static吗?
是否需要反过来说,如果一个类包含所有静态方法,那么该类是否也应该是静态的?
什么是静态类有用?
我见过这样的例子:
public class MaxSeconds {
public static final int MAX_SECONDS = 25;
}
Run Code Online (Sandbox Code Playgroud)
并且假设我可以有一个Constants类来包装常量,声明它们是静态final.我几乎不知道Java,我想知道这是否是创建常量的最佳方法.
我正在寻找一些开源Java项目来进入Java,并注意到它们中有很多都有某种"常量"接口.
例如,processing.org有一个名为PConstants.java的接口,大多数其他核心类实现了这个接口.界面充满了静态成员.有这种方法的理由,还是这被认为是不好的做法?为什么不在有意义的地方使用枚举,或者使用静态类?
我发现使用接口允许某种伪"全局变量"很奇怪.
public interface PConstants {
// LOTS OF static fields...
static public final int SHINE = 31;
// emissive (by default kept black)
static public final int ER = 32;
static public final int EG = 33;
static public final int EB = 34;
// has this vertex been lit yet
static public final int BEEN_LIT = 35;
static public final int VERTEX_FIELD_COUNT = 36;
// renderers known to processing.core
static final …Run Code Online (Sandbox Code Playgroud) 偶尔,我们必须编写接收许多参数的方法,例如:
public void doSomething(Object objA , Object objectB ,Date date1 ,Date date2 ,String str1 ,String str2 )
{
}
Run Code Online (Sandbox Code Playgroud)
当我遇到这种问题时,我经常将参数封装到地图中.
Map<Object,Object> params = new HashMap<Object,Object>();
params.put("objA",ObjA) ;
......
public void doSomething(Map<Object,Object> params)
{
// extracting params
Object objA = (Object)params.get("objA");
......
}
Run Code Online (Sandbox Code Playgroud)
这不是一个好的做法,将params封装到地图中完全是浪费效率.好处是,干净的签名,容易添加其他params与最少的修改.这种问题的最佳做法是什么?