2017-08-12 92 views
0

我試圖使用PriorityBlockingQueue類的一個實例:錯誤上的PriorityBlockingQueue

public static PriorityBlockingQueue<Message> messagesQueue = new PriorityBlockingQueue<Message>(); 

public static void EnqueueMessage(Message message) 
{ 
    messagesQueue.add(message); 
} 

和我的編譯器不斷拋出一個奇怪的錯誤:

Description Resource Path Location Type 
BlockingQueue cannot be resolved to a type MessageManager.java /necrotek3d_v/src/MessageManagement line 46 Java Problem 
BlockingQueue cannot be resolved to a type MessageManager.java /necrotek3d_v/src/MessageManagement line 49 Java Problem 
BlockingQueue cannot be resolved to a type MessageManager.java /necrotek3d_v/src/MessageManagement line 64 Java Problem 
BlockingQueue cannot be resolved to a type MessageManager.java /necrotek3d_v/src/MessageManagement line 68 Java Problem 
Syntax error on token ";", { expected after this token IBaseNPC.java /necrotek3d_v/src/GameInterfaces/NPCs line 27 Java Problem 
Syntax error on token "}", ; expected MessageManager.java /necrotek3d_v/src/MessageManagement line 69 Java Problem 
Syntax error on token "static", interface expected after this token MessageManager.java /necrotek3d_v/src/MessageManagement line 64 Java Problem 

編輯

這裏是給messageManager :

public class MessageManager extends Thread { 
    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     while (true) 
     if (!messagesQueue.isEmpty()) 
      { 
       //pull message from queue 
       Message message = messagesQueue.remove(); 

       //dispatch messages according to their type 
       switch(message.mflag) 
       { 
       case EM_BOOTSTRAP: 
        CJournal.Journal(MessageManager.class, "Messaging system working properly."); 
       default: 
        CJournal.Journal(MessageManager.class, "Default Dispatch Message Trashed"); 
       } 
      } 
     } 
    } 


    public static PriorityBlockingQueue<Message> messagesQueue = new PriorityBlockingQueue<Message>(); 

    public static void EnqueueMessage(Message message) 
    { 
     messagesQueue.add(message); 
    } 

     //called upon when object is no longer needed 

     public void Destroy() 
     { 
      //called Destroy 
     } 

     //called every turn. checks messagemanager for message 

     public void ParseMessage() 
     { 

     } 


     public static void Launch() {} 


     //called on object creation 

     public static void Init() {} 



     public static void Render() 
     { 

     } 


     public static void Collision() 
     { 

     } 

     //when the game requires this particular state to be active 

     public static void OnEnter() 
     { 

     } 

     //When the object no longer needs to be attachd to the scene graph 

     public static void OnExit() 
     { 
     } 

     //for exammple, hitting the pause button 

     public static void OnSuspend() 
     { 
     } 


    public static void Train() 
    { 
     //incoming messages are analyzed and sent 
     //to the trainer to record the behavior for the AI 
    } 

}

這裏是BaseNPC:

public interface IBaseNPC extends IBase { 

    //AI TYPE 

    int active_speed = 0; 
    boolean allured = false; 
    String corpse_name = new String(); 
    direct_damage = 0; 
    energy_damage = 0; 

    ///fight mode 

    int [] home = new int[3]; 

    boolean is_bonded = false; 
    boolean is_champion_spawned = false; 
    boolean is_paragoned = false; 
    boolean is_prisoner = false; 
    boolean no_loot_on_death = false; 
    int passive_speed = 0; 
    int physical_damage = 0; 
    int poison_damage = 0; 
    boolean alive = true; 
    int armor_rating = 0; 

    int back_pack_index = 0; 
    int bank_box_index = 0; 
    boolean blessed = false; 

    int body_type_index = 0; 
    int body_value_index = 0; 
    boolean can_hear_ghosts = false; 
    boolean can_swim = false; 
    boolean cant_walk = false; 

    int cold_resistance = 0; 
    //combatant 
    //corpse 
    boolean criminal = false; 
    int dex = 0; 
    int str = 0; 
    int intel = 0; 

    int emote_hue = 0; 

    int face_hue = 0; 
    int face_item_id = 0; 

    int facial_hair_hue = 0; 
    int facial_hair_item_id = 0; 

    int flying = 0; 

    int hair_hue = 0; 
    int hair_item_id = 0; 

    boolean hidden = false; 
    int hue = 0; 

    int hunger = 0; 
    boolean is_stealthing; 

    int kills = 0; 

    int [] location = new int[3]; 

    int mana = 0; 

    //map 

    boolean meditating = false; 

    //mount 

    boolean mounted = false; 
    boolean murderer = false; 

    int name_hue = 0; 

    boolean paralyzed = false; 
    boolean poisoned = false; 

    //race 

    String raw_name = null; 
    int speech_hue = 0; 

    int thirst = 0; 
    String title = null; 

    int total_gold = 0; 
    int total_items = 0; 
    int total_weight = 0; 

    int weapon = 0; 
    boolean war_mode = false; 

    //Chores: 
    EChores chore = null; 
    EMoods mood = null; 
    ENPCActions npc_action = null; 

    CAdvancedAISliders advanced_sliders = null; 

    CAIBits ai_bits = null; 

    CAnotherBitTable another_bits = null; 

    CBaseStats base_stats = null; 

    CCharacterStatistics char_stats = null; 

    CDynamicStats dynamic_stats = null; 

    CEmotions emotions = null; 

    CInternalThingTable internal_thing = null; 

    CKnowledgeAndLore knowledge_lore = null; 

    CSkill skillls = null; 

    CSocialBehaviorsSliders social_sliders = null; 

    CThingInfoClass thing_info = null; 

    CVvampireTable vampire_table = null; 
} 
+1

請問您可以發佈文件的內容:'MessageManager.java'和'BaseNPC.java'? –

+0

MessageManager: –

回答

0

總而言之,編譯器提供了編譯錯誤,其中包括語法錯誤的列表,以及它們的詳細說明。請仔細查看每個錯誤並正確糾正實施情況。

已發現的一些問題。

IBaseNPC接口

  1. 某些字段沒有指定的類型。考慮更新的字段,例如,如下:所分配的值的

    int direct_damage = 0; 
    int energy_damage = 0; 
    
  2. 領域缺乏。考慮引入的場的初始化,例如,如下:

    boolean is_stealthing = false; 
    

MessageManager

  1. 大括號不均衡。考慮正確糾正大括號。
+0

,當然,在界面中不能有非靜態字段 –