Java中的成员访问

时间:2011-10-16 16:11:16

标签: java

我的代码中变量名与类名相同。即:

class Foo {
  static public void main(String[] args) {
    Integer Foo;
    Foo.main(args);
  }
}

如何在不重命名变量或类的情况下调用main方法?

5 个答案:

答案 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)

  

我的代码中变量名与类名

相同

为什么呢?简单的答案是“不要”。惯例是类名以大写开头,而成员变量名不是,它完全负责它。