java怎样拼出一个对象名?

kkn1x 发布于 2015/03/16 12:06
阅读 1K+
收藏 1
Wall w1 = new Wall(300, 200, 20, 15, this);
Wall w2 = new Wall(500, 100, 30, 20, this);
Wall w3 = new Wall(600, 480, 40, 35, this);
Wall w4 = new Wall(800, 500, 30, 20, this);
Wall w5 = new Wall(700, 600, 20, 15, this);
Wall w6 = new Wall(400, 700, 30, 80, this);
Wall w7 = new Wall(900, 680, 20, 15, this);
Wall w8 = new Wall(1000, 390, 30, 20, this);


List<Wall> ws = new ArrayList<Wall>();


for (int i = 0; i < 8; i++) {
ws.add(toString("w"+i));
}

这个不对,就说用一个for循环 add w1-w8;

怎样用for循环填这个list?

加载中
1
开源中国首席一失足成千古风流人物以稀为贵
开源中国首席一失足成千古风流人物以稀为贵

做不到~

换个做法把


List<Wall> ws = new ArrayList<Wall>(){
            {
                this.add(    new Wall(300, 200, 20, 15, this));
                 this.add(    new Wall(500, 100, 30, 20, this));
                 this.add(    new Wall(600, 480, 40, 35, this));
                 this.add(    new Wall(800, 500, 30, 20, this));
                 this.add(    new Wall(700, 600, 20, 15, this));
                 this.add(    new Wall(400, 700, 30, 80, this));
                 this.add(    new Wall(900, 680, 20, 15, this));
                 this.add(    new Wall(1000, 390, 30, 20, this));
            }
        };



1
iSea
iSea

w1-w8先放到map里,以w+i为键,然后循环的时候以此键get到对象

k
kkn1x
回这个我认为不能用反射,因为这个带参数了
k
kkn1x
都已经放map 里了,何不直接写上。。。。。add.....,不科学
-水水-
-水水-
如果不会反射的话,这的确是个很好的办法,类似于枚举,但是如果是w100,w1000的话,要手写很多代码
0
保安队长
-水水-
-水水-
回复 @kkn1x : 自己搜索一下嘛,CLass.forName()会用了,基本反射就会用了
k
kkn1x
具体?
0
Shazi199
Shazi199
为何不考虑把参数做成一个组。。
0
k
kkn1x
没有参数!!
0
battyman
battyman

如果是w1~w8是类的一些属性的话,Java使用反射能达到目的

如果是临时变量,这个解释型语言倒是很常见,如javascript,但是在Java里面,用动态编译的话,可能达到目的

0
k
kkn1x
具体用反射怎吗做?????????
0
k
kkn1x
Wall是一个类名,w1。。。。是实例化对象
0
红桃K
红桃K
用google提供的工具类吧。
返回顶部
顶部