2015-02-11 29 views
0
int[] numbers = new int[10]; 
numbers[0] = 20; 

起初我以为我的语法很差(我更喜欢C++程序员),它不起作用。但是我推出了这本好书的Java书,这将是正确的。Android Java - 给数组赋值时的问题

Android Studio是否有任何明显的理由不承认这一点?第一行宣布数组似乎正常工作,但我设置20作为第一个块的行是给我的红色squigglies和Unknown Class 'numbers'错误。

+2

向我们展示完整的代码再生周围数问题 – 2015-02-11 06:40:58

+0

加括号[0] = 20;可以帮助) – Leonidos 2015-02-11 06:41:59

回答

3

这是如果代码位于类体中而不是方法体中会发生的情况。

第一行的声明在类和方法体中都是有效的。第二行分配仅在方法中有效。

+0

*乐叹*我现在看到这个。我想把它归咎于我缺乏Java,但不知何故,我仍然觉得我应该能够接受这一点。尽管如此,感谢您花时间指出这一点。 – lilgodwin 2015-02-11 06:47:38

+0

对于它的价值,C++中的情况是相同的。您只能在类“{}”块中进行声明,代码(如赋值)需要位于功能块中。编译器希望看到一个声明,并在“声明”具有未知类型时发出错误消息。 – laalto 2015-02-11 07:06:34

+0

好的,我确定在活动的公共类括号内声明。它把我把它放在类里面的一个函数/方法中,以便能够把它关闭。 – lilgodwin 2015-02-11 15:31:05

0

你的第二行需要在方法(函数)中。

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

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

如果正在编码的Android然后ArrayList的是更优选的和易于使用的太,

就这么简单

ArrayList的号码=新的ArrayList();

numbers.add(20);

+0

虽然这并不回答问题。 – laalto 2015-02-11 06:50:12

+1

尽管我必须同意上述说法(它不一定回答我原来的问题),但我很欣赏这些建议。我研究了这些差异,并且据我所知,除非真的需要切换到ArrayList,而我现在还无法找到它,否则我会坚持使用数组。再次感谢诚实的建议。我在Java上并不是很强大,而且我绝对是Android的新手。 – lilgodwin 2015-02-11 07:02:05

0

你应该在构造函数或某些方法赋值...