【问题标题】:Android Java - Issue while assigning value to arrayAndroid Java - 为数组赋值时出现问题
【发布时间】:2015-02-11 06:39:06
【问题描述】:
int[] numbers = new int[10];
numbers[0] = 20;

起初我以为我在语法上离得太远了(我更像是一个 C++ 程序员),以至于它行不通。但我翻出了一本不错的 Java 书籍,这是正确的。

Android Studio 不能识别这一点有什么明显的原因吗?声明数组的第一行似乎工作正常,但我将 20 设置为第一个块的行给了我红色波浪线和Unknown Class 'numbers' 错误。

【问题讨论】:

  • 向我们展示重现问题的完整代码
  • 在数字周围添加括号[0] = 20;可以帮忙)

标签: java android arrays syntax


【解决方案1】:

如果代码在类体中而不是在方法体中,就会发生这种情况。

第一行的声明在类和方法体中都有效。第二行赋值只在方法中有效。

【讨论】:

  • le sigh 我现在看到了。我想把它归咎于我缺乏 Java,但不知何故我仍然觉得我应该能够接受这一点。尽管如此,感谢您花时间指出这一点。
  • 不管怎样,C++ 中的情况也是如此。只能在类{} 块中声明,赋值等代码需要在功能块中。当“声明”具有未知类型时,编译器希望看到声明并发出错误消息。
  • 好吧,我肯定是在活动的公共类括号内声明。我把它放在类中的一个函数/方法中才能将它拉下来。
【解决方案2】:

您的第二行需要在方法(函数)内。

class Foo
{
    int numbers[] = new int[10];

    Foo()
    {
         numbers[0] = 20;
    }
 }

【讨论】:

    【解决方案3】:

    您应该在构造函数或某些方法中分配值...

    【讨论】:

      【解决方案4】:

      如果你正在为 Android 编码,那么 ArrayList 更可取且易于使用,

      就这么简单

      ArrayList numbers=new ArrayList();

      numbers.add(20);

      【讨论】:

      • 但这并不能解决问题。
      • 虽然我必须同意上述说法(它不一定回答我原来的问题),但我非常感谢您的建议。我研究了这些差异,据我所知,除非确实需要切换到我目前似乎无法找到的 ArrayList,否则我会坚持使用数组。再次感谢您的诚实建议。我对 Java 不是很了解,而且我绝对是 Android 新手。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 2011-03-04
      • 2014-09-21
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多