0

所以我要做的就是创建这个对象,然后将它和其他类似的对象存储在哈希表中,然后稍后使用它的一些方法。但是当我尝试获取对象并使用它的方法时,我得到了一个错误。

我的代码:

D_Object obj;
Hashtable player_table;

obj = new D_Object("pikachu",pikachu,PLAYER_X,PLAYER_Y,PIKA_WIDTH,PIKA_HEIGHT,PIKA_OFFSETX,PIKA_OFFSETY,PLAYER_SPEED);

player_table.put(obj.getObjNum(),obj);

....然后我尝试使用对象方法 getObjNum() 它给了我一个错误

for(int i=1;i<=obj.getNumObjs();i++){
    if(player_table.get(i).getObjNum() != obj.getObjNum()){

……

错误如下:

appletGameExample.java:319: cannot find symbol
symbol  : method getObjNum()
location: class java.lang.Object

每当我尝试使用此对象中的方法时,它都会给出相同的错误

有人可以帮忙吗?

4

3 回答 3

1

用它作为Hashtable<int, D_Object>

于 2013-03-25T01:38:32.487 回答
0

因为您没有指定保存的对象类型,所以默认情况下Hashtable它会检索它们(所有内容的类)。An没有您尝试对其调用的方法。您需要在访问它们时执行类型转换,或指定持有的内容,如下所示:ObjectextendObjectHashtable

Hashtable<String, D_Object> player_table = new Hashtable<String, D_Object>();

于 2013-03-25T01:37:45.847 回答
0
((D_Object)player_table.get(i)).getObjNum()
于 2013-03-25T01:48:32.307 回答