【问题标题】:Android studio: Why can't I reference a variable I've declared?Android Studio:为什么我不能引用我声明的变量?
【发布时间】:2016-01-30 18:19:32
【问题描述】:

如果我声明一个 int 然后想要在下一行初始化它,它不会让我使用 Android Studio 空活动(或空白活动)。例如:

public class MainActivity extends AppCompatActivity {

     int n;
     n=1;   // generates a lint here and says unknown class 'n'

}

它在 n=1 下设置一个 lint;并告诉我“未知类:'n'”

...但是,如果我创建一个方法,我可以在该方法中对其进行初始化。例如:

public class MainActivity extends AppCompatActivity {

     int n;

     public void test() {
          n=1;
     }

}

它还允许我声明一个 int 然后在方法内部的下一行初始化它。例如:

public class MainActivity extends AppCompatActivity {

     public void test() {
          int n;
          n=1;
     }

}

有人能解释一下为什么我不能引用我在 MainActivity 类中设置的变量吗?谢谢。

【问题讨论】:

  • 为什么不在同一行初始化
  • 不能直接在类内部初始化变量(除非是同一行),甚至调用方法都需要方法或构造函数。
  • drwisdom,我只是想知道为什么它可以在一个方法中完成,而不是一个类。

标签: java android variables int declaration


【解决方案1】:

这正是 Java 变量初始化的工作方式 - 您可以在类的开头初始化变量:

public class MainActivity extends AppCompatActivity {
     int n = 1;
     .....
     other methods
}

或在方法或构造函数内部:

public class MainActivity extends AppCompatActivity {

     int n;

     public void test() {
          n=1;
          int a;
          a = 8;
     }
}

它与android无关,只是普通的Java。

例如,您可能会阅读有关该机制 here 的信息。

【讨论】:

  • 谢谢。就好像它是一个方法内部的过程,而不是一个类。
猜你喜欢
  • 2016-04-23
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2020-09-04
  • 1970-01-01
  • 2018-12-11
相关资源
最近更新 更多