2017-03-02 85 views
0

我试图创建一个看起来像object1 []。object2 []的对象数组。但是,我的代码似乎无法正常工作,所以我的代码在哪里出错?Java对象阵列中的对象阵列

public class Program 
{ 
    public static void main(String[] args) { 
     int evolve = 1; 
     int rows = 2; 


     Evolution[] a = new Evolution[evolve]; 
     for(int i=0; i<evolve; i++){ 
      a[i] = new Evolution(); 

      Evolution.Node[] b = a[i].new Node[rows]; 
     } 

    } 
} 

public class Evolution{ 
    double fitness; 
    public class Node{ 
     double value = 900; //900 was a test value 
    } 
    public class Synapsis extends Node{ 
     double weight; 
     double input; 
     double output; 
    } 
} 
+1

你说的意思是什么“不会出现上班”?你有错误吗?你得到错误的输出。请在您的问题中添加更多细节。 –

回答

0

你混淆内部类实例化与数组实例化的语法。您的阵列创建应该是这样的:

Evolution.Node[] b = new Evolution.Node[rows]; 

如果你想填充数组,那么你就需要这样的事:

for (int j = 0; j < rows; j++) { 
    b[j] = a[i].new Node(); 
} 
+0

'a [i] .new Node()'是否是有效的Java语法? –

+1

@TotZam [Yup。](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)看起来很有趣,我知道。 – shmosel

+0

我很少使用嵌套类。我想这就是为什么我从未见过这种语法。刚刚学到了新东西。谢谢。 –