【问题标题】:Cannot make a static reference to the non-static method acceptadd(String) from the type teaminfo无法从类型 teaminfo 对非静态方法 acceptadd(String) 进行静态引用
【发布时间】:2012-06-10 17:40:55
【问题描述】:

目前,我正在尝试让几种方法相互访问。但是,我收到了一个我无法弄清楚的错误。

这是我得到的错误:

无法从类型 teaminfo 对非静态方法 acceptadd(String) 进行静态引用

我查看了一个方法或变量是否在不应该是静态的时候是静态的,但是方法 acceptadd(String) 或我从中调用它的方法都不是静态的。我不知道如何解决这一点,有人可以帮助我吗?

这是我的 GuiAddReject 代码:

http://pastebin.com/Yj1Ny5Pz

无法从类型 teaminfo 对非静态方法 acceptadd(String) 进行静态引用的错误位于此行:

        teaminfo.acceptadd(playername);

这里是teaminfo.java:

http://pastebin.com/NxM8rwrE

任何帮助将不胜感激。

另外,对链接感到抱歉,无法使代码括号起作用...

【问题讨论】:

  • 请使用 pastebin 或在此处发布您的代码,没有 mediafire 链接,谢谢
  • 我现在正在添加 pastebin。 :)

标签: java compiler-errors


【解决方案1】:

问题是你试图调用一个 instance 方法,就好像它是静态的一样。

在你引用的那一行:

teaminfo.acceptadd(playername);

teaminfo 是一个 class 名称,而不是引用该类的 instance 的变量。您想在项目中的某处创建一个 teaminfo 对象,例如在 GuiAddReject 中,并调用该对象上的方法。

【讨论】:

  • +1。 @Rainfur:如果您尊重 Java 命名约定,并调用您的类 TeamInfo 而不是 teaminfo,您会立即注意到它:TeamInfo.foo():静态方法调用。 teamInfo.foo():实例方法调用。
【解决方案2】:

该错误表示您正在尝试从静态上下文(即不是从对象)访问非静态方法 (acceptadd)。为了解决这个问题,您需要创建您要调用的方法所属的类的对象,并从其引用中调用该方法。

例如正确的方法是:

teaminfo tf = new teaminfo();
tf.acceptadd(playername);

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2013-01-15
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多