簡體   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