繁体   English   中英

无法从哈希表中的对象调用方法

[英]Can't invoke a method from an object in a hashtable

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

我的代码:

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

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

有人可以帮忙吗?

用作Hashtable<int, D_Object>

由于您没有指定Hashtable持有的对象类型,因此默认情况下,它会将它们检索为Object (所有内容都extend为的类)。 Object没有您要在其上调用的方法。 您将需要在访问它们时执行类型转换,或指定Hashtable ,如下所示:

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

((D_Object)player_table.get(i)).getObjNum()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM