2014-01-12 17 views
0

我只是想知道在Java中是否有'快速/简写'符号来创建大量具有不同名称的完全相同的对象?相同的参数和所有爵士乐。速记构造函数表示法

有点像 -

private float bal, limit, amount; 
private String name, add; 

但不是为对象

这里就是我与

private JTextField nTF = new JTextField(); 
private JTextField aTF = new JTextField(); 
private JTextField sTF = new JTextField(); 
private JTextField bTF = new JTextField(); 
private JTextField cTF = new JTextField(); 
+0

您可以创建一个数组,然后使用循环来填充数组的每个条目。但是没有神奇的速记。 –

+0

创建它们的集合并使用for循环创建它们。 –

+1

'私人字符串名称,添加;'没有创建任何东西。字符串也是对象。 – SirDarius

回答

0

工作,就可以编写创建与正确的参数对象的方法:

public static JTextField createFoo(){ 
    JTextField field = new JTextField(1, 2, "foo",); 
    field.setFoo("xyz"); 
    return field; 
} 

JTextField ntf = createFoo(); 

您还可以基于现有的克隆对象,并创建实例:

JTextField field = new JTextField(1, 2, "foo",); 
JTextField nTF = field.clone(); 

但是这可能是多一点involved

+0

如果有人在我正在审查的代码中使用此代码,会出现很多红线。这不是对原始代码的改进。 –

+0

@StephenC你的牛肉与代码是什么? :) – Dan

+0

它是详细的,它是丑陋的,它效率低下...总之它不是对原始代码的改进。此外,我没有看到这里的思考点。不会'public static JTextField createFoo(){return new JTextField(); ''做同样的事情? –

1

java中没有快速/简写符号来一次创建多个对象。

但是,您可以通过创建对象工厂方法并在循环中调用该方法来实现此目的。

// object Factory Method 
private XYZ getXYZInstance(){ 
    XYZ objXYZ = new XYZ(); 
    // initialization 
} 

// Your Code 

List XYZList = new ArrayList<XYZ>(); 
for(i=0;i<10;i++){ 
    XYZList.add(getXYZInstance()); 
}