所以我要做的就是创建这个对象,然后将它和其他类似的东西存储在一个哈希表中,然后再使用它的方法。但是当我尝试获取对象并使用其方法时,我得到一个错误。
我的代码:
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
在我尝试使用此对象的方法时,它会给出相同的错误
有人可以帮忙吗?
答案 0 :(得分:1)
将其用作Hashtable<int, D_Object>
答案 1 :(得分:0)
由于您没有指定Hashtable
包含的对象类型,因此默认情况下会将其检索为Object
(所有extend
s的类)。 Object
没有您尝试在其上调用的方法。您需要在访问它们时执行类型转换,或指定Hashtable
保持的内容,如下所示:
Hashtable<String, D_Object> player_table = new Hashtable<String, D_Object>();
答案 2 :(得分:0)
((D_Object)player_table.get(i)).getObjNum()