【发布时间】:2014-09-14 17:52:11
【问题描述】:
我有两个程序。我创建了一个静态数组和一些方法,如下所示:
public Someclass{
static int counter[] = new int[n];
//methods & main
}
n 被定义为某个数字,所以我知道它会有一些长度。后来我填充了这个数组并测试它是否被正确填充,所以我知道一些索引应该有 0 以外的值。现在当我尝试在第二个程序中调用它时,虽然我从未填充它,因为它只给出我是 0。
//second program
public Someclass2{
public static main(String[] args){
String n = "someword"
int[] nums = new int[n.length]
for( int i = 0; i < n.length; i++){
nums[i] = nums[i] + (25 * SomeClass.counter[i]);
}
}
}
由于某种原因,当我在第二个程序中调用数组时,它返回全零并且不会更改 nums 的值,即使我知道计数器数组应该具有非零值。我认为这与我静态初始化它但我在本地方法和类中填充它的事实有关。所以从技术上讲,它永远不会更新零。我在尝试解决此问题时遇到了麻烦,如果有人可以提供帮助,我会很感激。
谢谢
【问题讨论】:
-
什么时候调用 SomeClass 中的本地方法来修改计数器数组?
-
静态数组被初始化为全零。你没有把价值观放进去。如果您已处理值。您的 main 方法中没有调用它。
标签: java arrays class static global