无法从静态上下文中引用非静态变量

afunx 2009-09-28 04:06:08
在一个项目中,有两个文件分别为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);
}
}
被告知“无法从静态上下文中引用非静态变量”,请问如何可以解决这个问题。
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SimonYeung 2009-09-28
  • 打赏
  • 举报
回复
想在静态方法中引用非静态方法是不可能的,因为它究竟引用的是哪个对象的非静态方法呢?编译器不可能给出答案,因为没有对象啊,所以要报错.

解决方法:实例化一个 Gui对象 然后调用 按钮AButton的getText()方法,就能拿到字符串s变量了。
afunx 2009-09-28
  • 打赏
  • 举报
回复
由于分数不够,过两天来结贴。。。
afunx 2009-09-28
  • 打赏
  • 举报
回复
解决了,谢谢4楼的哥们.
amdgaming 2009-09-28
  • 打赏
  • 举报
回复


s= Gui.AButton.getText();

你的AButton不是静态的吧,

afunx 2009-09-28
  • 打赏
  • 举报
回复
我目前在做一个项目,但JAVA只是初学。我想要达到的目的是,在static void main中读取Gui上输入的网络地址,可有办法解决吗?
justinavril 2009-09-28
  • 打赏
  • 举报
回复
查下你的Gui类,估计这样就好了:
s=new Gui().AButton.getText();
logon29 2009-09-28
  • 打赏
  • 举报
回复
看下Gui
AButton是否为static,还有AButton.getText() 是否为static?
不是的话,需要先new对象,然后再调用。
nihuajie05 2009-09-28
  • 打赏
  • 举报
回复
。。。
非静态是跟instance绑在一起的
new一个对象,然后调用吧
老紫竹 2009-09-28
  • 打赏
  • 举报
回复
那就
1 别引用呗
2 实例化一个,然后引用

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧