【问题标题】:Cannot make a static reference to a non-static method [duplicate]无法对非静态方法进行静态引用[重复]
【发布时间】:2014-06-08 15:25:11
【问题描述】:

我的 java 代码中有这个,当我尝试编译我的代码时出现错误。当我尝试将 textview 中的文本值转换为 var 时,就会发生这种情况。我无法理解这个错误,因为它在其他方法中运行良好。

为什么会发生这种情况,我该如何解决?

    public class MainActivity extends Activity {

        public EditText editText;
        TextView textView;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toast.makeText(MainActivity.this, "onCreate", Toast.LENGTH_LONG).show();

            //setupMessageButton();

            editText = (EditText) findViewById(R.id.editText1);
            textView = (TextView)findViewById(R.id.tvIsConnected);


        }

        public void btnDisplayMessage(View view){

            //HERE WORKS FINE
            String missatge = editText.getText().toString();

        }

    public static String POST(String url){
        InputStream inputStream = null;
        String result = "";
        //HERE CRASHES
        String missatge = "red"//editText.getText().toString(); GIVES ERROR
        String usuario = "foo";

............

为什么?

编辑:感谢您对我的问题投反对票,是的,我搜索了另一个类似的问题,并且我已经尝试过使用静态方法...然后不要崩溃,但 var 的内容为 null 并且不适用于全部。

【问题讨论】:

  • 你的广泛搜索带来了什么?
  • 使post 方法非静态。因为您无法在静态方法中访问非静态变量。
  • "我无法理解这个错误" 你不会吗?还是没试过?
  • 我只是点击了“关闭为重复”并选择了第一个结果。找到这个问题的副本是多么容易。
  • @JakeB IMO(这可能是错误的)如果问题是这样的,其中涉及一个基本的 java 错误,该错误已经在本网站上进行了很多次,通过回答你只会促进人们不断提出这些问题。

标签: java variables methods var


【解决方案1】:

您不能从静态方法访问非静态变量...

解决方案:

  1. 将editText设为静态
  2. 一个静态方法访问一个非静态变量是不合逻辑的,所以你应该改变那里的逻辑!

你好 :)...

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 1970-01-01
    • 2021-08-31
    • 2011-06-25
    相关资源
    最近更新 更多