2014-01-21 33 views
-1

我正在導入Jar文件以將其類(或.java's)用於NetBeans IDE。罐子是pircbot.jar。我想打電話的內部班級是PircBot。我進口這樣的:Java「無法從靜態上下文中引用」Jar導入

import org.jibble.pircbot.*; 

而且我打電話給他們這樣的:

PircBot.connect("irc.twitch.tv", 6667, passwordInput); 

現在,如果將.jar是在我的圖書館NetBeans IDE的部分,我正確導入它:爲什麼,我越來越此錯誤:

non-static method connect(String, int, String) cannot be referenced from a static context 

所有Jar錯誤都來自進口,所有靜態上下文問題都是從main()類調用的人。

+0

不完全是:我的問題來自PircBot是抽象的,這是一個具體的問題:不是一般的問題。 – DaCoder

+0

我想說這是一個不同的錯誤。這裏的問題是你需要一個實例。直到你嘗試創建PircBot纔會出現抽象問題。 –

+0

那麼現在我被禁止問StackOverflow問題了? -_- – DaCoder

回答

3

由於您的錯誤消息指出,連接不是一個靜態方法,並需要一個實例來調用它。這與jar文件或導入沒有任何關係,並且都與Java的基本螺母和螺栓有關。閱讀課程並創建課程的實例或對象。底線,你首先創建一個PircBot實例,然後調用它的方法。

So I hope no one will do what people in IRC chat do: "ugh how can you not know this?" or "that has been asked a hundred times, go look it up" Because I have looked it up, everywhere I could.

我也不能批評你不知道Java作爲我們沒有生來就有這方面的知識,但我會建議您在谷歌工作的技能,因爲這問題已經被問在這個網站,更多的則每天五次,如果你看,信息很容易找到。


編輯
幽州:

Unfortunately: I have tried this: I get "abstract method cannot be instantiated" Any knowledge of this?

您已經更多的研究要做。 PircBot是抽象類,這意味着你不能簡單地調用PircBot構造函數並獲取實例。相反,您需要找到PircBot類的具體子類並使用該類的實例。希望jar文件有一些文檔可以幫助你找到它。您可能需要調用工廠方法來實現此目的。要找到它,請查看PircBot是否有任何返回PircBot對象的靜態方法。


編輯2
documentation審查,我錯了:必須創建一個擴展PircBot具體類。在你的新課堂中,你將不得不實施任何和所有的抽象方法。你應該通過他們提供的教程。當你有良好的文檔時,爲什麼會摔倒?

+1

「需要一個實例來調用它。」謝謝先生:研究模式激活。如果我找到解決方案,我會發布。 – DaCoder

+0

+1不僅僅是找出答案,而是提供可以幫助他自己想出答案的信息。 –

+0

@DaCoder:請參閱編輯回答。 –

1

您想要使用的類不是一個靜態類,因此,你需要先實例化類,如

PircBot bot = new PircBot(); 

我不熟悉這個類,這樣的構造可能是來自不同以上。

這裏是一個link的API

它看起來像你需要實現它自己。

import org.jibble.pircbot.*; 

public class MyBot extends PircBot { 

    public MyBot() { 
     this.setName("MyBot"); 
    } 

} 
+0

如上所述:LMNOP說同樣的:但是這是行不通的。 – DaCoder

+0

爲什麼downvote。如果您不預先提供信息,我們只能猜測。如果PircBot是抽象的,那麼會有一個覆蓋它的類。您需要閱讀API並找到它。 –

+0

**備註**請參閱更新回答 –

相關問題