在一个项目中,有两个文件分别为public class A和public class Gui
import java.util.*;
import com.Gui;
public class A
  {
       public static void main(String args[])
         {  
            String s;
            s=Gui.AButton.getText();
            System.out.println(s);
         }
  }
被告知“无法从静态上下文中引用非静态变量”,请问如何可以解决这个问题。

解决方案 »

  1.   


    非静态是跟instance绑在一起的
    new一个对象,然后调用吧
      

  2.   

    看下Gui
    AButton是否为static,还有AButton.getText() 是否为static?
    不是的话,需要先new对象,然后再调用。
      

  3.   

    查下你的Gui类,估计这样就好了:
    s=new Gui().AButton.getText();
      

  4.   

    我目前在做一个项目,但JAVA只是初学。我想要达到的目的是,在static void main中读取Gui上输入的网络地址,可有办法解决吗?
      

  5.   

    s=  Gui.AButton.getText(); 你的AButton不是静态的吧,
      

  6.   

    想在静态方法中引用非静态方法是不可能的,因为它究竟引用的是哪个对象的非静态方法呢?编译器不可能给出答案,因为没有对象啊,所以要报错.解决方法:实例化一个 Gui对象 然后调用 按钮AButton的getText()方法,就能拿到字符串s变量了。