2012-10-17 54 views
1

可能重複:
java non-static method getBalance cannot be referenced from a static context非靜態方法isSpam(的MailItem)不能從靜態上下文中引用

我試圖訪問另一個類的isSpam方法,但它不是允許我。它一直說非靜態方法不能被引用。我可以得到一些幫助嗎? 這裏是我的isSpam和一個代碼來檢查

public void post(MailItem item)

if (SpamChecker.isSpam(item)) { 
    } 
    String name = item.getTo(); 
    if(!items.containsKey(name)) { 
     items.put(name,new ArrayList<MailItem>()); 
    } 
    items.get(name).add(item); 
} 

and here's the isSpam from SpamChecker class

public boolean isSpam(MailItem item) { if (item.getSubject().toLowerCase().startsWith("spam")){

 return true; } else if(item.getSubject().toLowerCase().contains("online pharmacy")){ return true; } else if(item.getSubject().toLowerCase().contains("cheap viagra")) { return true; } else if(item.getSubject().toLowerCase().contains("generic viagra")) { return true; } else if(item.getSubject().toLowerCase().contains("fake watches")) { return true; } else if(item.getSubject().toLowerCase().contains("replica watches")) { return true; } else { return false; } } 

回答

0

寫爲:

SpamChecker spamChecker = new SpamChecker(); 
if (spamChecker.isSpam(item)) { 
    // <--- your logic 
} 
0

Dantuch或Yogendra的回答都不錯,也可以作爲很好,使該方法isPam()是靜態的。

0

根據我的理解isSpam()方法是非靜態之一,所以訪問此創建SpamChecker類的實例。

如:

SpamChecker spamCheck = new SpamChecker(); 

if (spamCheck.isSpam(item)){ 



} 
相關問題