在命名对象时是否可以使用变量?

时间:2011-05-31 02:29:05

标签: java oop

感谢您阅读我的问题。如果这看起来像一个容易搜索的问题,我很抱歉,但是搜索任何带有变量,对象和java的东西都会出现任何事情。

以下是我想做的事情:

BankCheck = check(variable int here) = BankCheck(params here);

这样我就可以创建check1000,然后检查1001,检查1002等等。

有什么建议吗?

谢谢!

修改

以下是我使用的内容:

ArrayList<Check> check = new ArrayList<Check>();

然后将每个新对象添加到数组中。

check.add(checkNum, new Check(details, amount));

5 个答案:

答案 0 :(得分:4)

通常这是使用数组解决的。所以而不是

check101 , check102 , check103 

你会有

check[0] , check[1] , check[2]

如果数字不连续且未提前知道,也可以使用哈希表

答案 1 :(得分:2)

在这种情况下,您可能想要使用数组。

BankCheck[] check = new BankCheck[100]; //100 objects

然后

check[0] 

是第一个对象等。

或者,如果支票号码很重要,您可以使用地图。

Map<Integer, BankCheck> check = new HashMap<Integer, BankCheck>();

然后:

check.put(1008, ABankCheckObject);

将支票1008放在该位置,可以通过以下方式访问:

check.get(1008);

答案 2 :(得分:2)

这里有两个选择。

第一个选项,我认为对你的情况是正确的,是声明一个数组并迭代它:

final int checkCount = 10000;  // Actual count to be filled in by you.  My guess is 10k.
BankCheck[] checks = new BankCheck[checkCount];

for (int i = 0; i < checks.length; ++i) {
    // It's not clear from your question exactly what should go here, but here is a guess.
    checks[i] = check(params);  
}

第二个选项是代码生成代码,如果你真的需要有几千个不同名称的变量。

答案 3 :(得分:2)

不是,这是不可能的,但你有两个选择

1.-创建和数组以保存可变数量的支票:

BankCheck[] checks = new BankCheck[100];

这样可以存储100张支票。您还可以使用列表:

List<BankCheck> checks = new ArrayList<BankCheck>();

除了没有固定数量的支票之外,它几乎相同。

2.-另一种选择是创建一个小程序来为你创建这个,然后你只需复制粘贴输出:

...
public static void main( String ... args ) {
     for( int i = 0 ; i < 100 ; i++ ) {
         System.out.printf("BackCheck check%d = new BankCheck();%n");
     }
}

但除非你试图做一些非常先进(或愚蠢)的事情,否则你真的会在大多数情况下使用选项#1。

我希望这会有所帮助

答案 4 :(得分:1)

如果您不想具有固定的上限,请使用ArrayList类,该类可以根据需要进行扩展。