2012-10-17 53 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)){ 



} 
相关问题