100分求解决java实例化的小问题
问题是这样的,想可以用变量来当实例化类名,但是怎么都不成功,请各位指教。第一个类A
public class A {
static int SIZE;
public A(int size){
this.SIZE=size;
}
第二个类B
public class B{
public B(int n){
for(int i=1;i<=n;i++){
/*问题在这里
*我想在初始化类B的时候根据参数n,同时初始化n个类A
*但是这n个类A的实例名字肯定不能一样,后面还要调用
*尝试用i来当实例名显然不行
*实在找不到解决办法,请各位帮帮忙:)*/
A i =new A(i*i);
}
}
}
请各位帮帮忙:) --------------------编程问答-------------------- public class B{
HashMap<int,A> hm=new HashMap<int,A>();
public B(int n){
for(int i=1;i<=n;i++){
A i =new A(i*i);//循环和对象都是i?
hm.put(i, i);
}
}
}
这样行不行hm里面就是一个个不同的A对象了。 --------------------编程问答--------------------
除了hashmap之外还有其他的可能的方法吗? --------------------编程问答-------------------- upupup --------------------编程问答-------------------- 你定义个数组不行不行吗?
--------------------编程问答-------------------- 明白LZ的意思,那种创建方式在.NET里都不能实现,JAVA反射也做不到,一般都是推荐用一些集合容器来存储,标示只能借助容器设定的值,而不能直接使用变量来代替实例名称。 --------------------编程问答-------------------- a[i] =new A(i*i); 多了个A,去掉。java本身不支持动态定义变量名。
public class B{
public B(int n){
A[] a=new A[n];
for(int i=1;i<=n;i++){
/*问题在这里
*我想在初始化类B的时候根据参数n,同时初始化n个类A
*但是这n个类A的实例名字肯定不能一样,后面还要调用
*尝试用i来当实例名显然不行
*实在找不到解决办法,请各位帮帮忙:)*/
A a[i] =new A(i*i);
}
}
}
--------------------编程问答--------------------
嗯 定义对象数组 --------------------编程问答-------------------- 对象数组或者集合 --------------------编程问答--------------------
+1
补充:Java , Java相关