我的代码中变量名与类名相同。即:
class Foo {
static public void main(String[] args) {
Integer Foo;
Foo.main(args);
}
}
如何在不重命名变量或类的情况下调用main方法?
答案 0 :(得分:9)
如果它不在默认包装中,您也可以通过包装名称来引用它,例如:
packagename.Foo.main(args);
或者你可以简单地引用没有类名的main,例如:
main(args);
答案 1 :(得分:3)
如果类Foo
位于包中,则可以使用完全限定名称:
my.package.Foo.main(args);
您还可以重命名变量Foo
;将变量名称大写是一种糟糕的Java风格。最后,为什么要这样从main
拨打main
?它会很快溢出堆栈。
答案 2 :(得分:1)
由于Integer
没有main(...)
方法,因此这不是问题
更一般地说,如果您需要消除歧义,请使用完整的包名称。
答案 3 :(得分:0)
使用完整的包名称,它可以工作。
package my.pck;
class Foo {
static public void main(String[] args) {
Integer Foo;
my.pck.Foo.main(new String[] { "arg" });
}
}
但是你为什么要这样从main调用main?它创造了无限循环。
答案 4 :(得分:0)
我的代码中变量名与类名
相同
为什么呢?简单的答案是“不要”。惯例是类名以大写开头,而成员变量名不是,它完全负责它。