可以在java中使用静态类型参数声明一个方法吗?如果不是,为什么?
前:
class A
{
void m(static int x)
{
System.out.println(x);
}
}
答案 0 :(得分:1)
我不相信这是可能的,我不能想到任何有效的用例。
将方法设置为静态以实现单例模式可能是有意义的。
class A
{
static void m(int x)
{
System.out.println(x);
}
}
然后可以使用它而无需按如下方式实例化A:
A.m(1);
或者,您可能希望使x immutable以避免意外行为。这将使用“final”完成,如下所示:
class A
{
void m(final int x)
{
System.out.println(x);
}
}
但是制作x static是没有用的。
答案 1 :(得分:0)
不会不允许(编译器错误)并且它也有意义。 static关键字表示变量在其作用域中只有一个实例,该实例在该作用域外是不可见的。这对于函数参数都没有意义。
§6.7.5.3/ 2:“在参数声明中出现的唯一存储类说明符是寄存器。”
答案 2 :(得分:0)
静态成员被视为类级别成员并被加载 在类加载期间在内存中,这意味着它是可取的 不应该依赖于类实例。
因此,您的类具有成员方法m
,需要传递parameter
来执行方法体。
如果你为它声明一个没有任何意义的静态成员 因为它在方法之外没有任何存在,所以类没有 有关它的信息加载时间严重违反了所有规定 上方。