请考虑以下代码:
我有两个类:ClassA.java和ClassB.java中定义的ClassA和ClassB
初始场景:
我在ClassA中有以下内容:
public class ClassA extends Task<Integer> {
@Override
protected Integer call() throws Exception {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
在ClassB.java中,我使用的是A类,如下所示:
public ClassB implements Initializable {
public ClassA[] QR;
@Override
public void initialize(URL url, ResourceBundle rb) {
for(int i=0; i<1; i++) {
QR[i] = new ClassA(i);
// My other stuff here
}
}
}
我所做的更改:
我决定在ClassA中使用10个不同的类,如下所示:
public ClassA {
public class Class1 extends Task<Integer> {
@Override
protected Integer call() throws Exception {
// My logic here
}
}
public class Class2 extends Task<Integer> {
@Override
protected Integer call() throws Exception {
// My logic here
}
}
public class Class3 extends Task<Integer> {
@Override
protected Integer call() throws Exception {
// My logic here
}
}
public class Class4 extends Task<Integer> {
@Override
protected Integer call() throws Exception {
// My logic here
}
}
// and so on until Class10
}// END of ClassA
我的问题:
1)在ClassB.java中,我应该如何访问Class1,Class2直到Class 10,这样我就可以为所有10个类定义如下内容:
@Override
public void initialize(URL url, ResourceBundle rb)
{
for(int i=0; i<1; i++)
{
QR[i] = new ClassA(i);
// My other stuff here
}
}
因为如果我打算做以下事情:
`public Class1[] QR1`, then it throws error.
答案 0 :(得分:0)
我希望oracle docs的这段文字回答你的问题:
InnerClass的一个实例只能存在于一个实例中 OuterClass并且可以直接访问其方法和字段 封闭实例。
要实例化内部类,必须首先实例化外部 类。然后,使用它在外部对象中创建内部对象 语法:
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
例如, QR [i] .Class1 test = QR [i] .new Class1();