2012-10-17 2 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 또는 요겐의 답변이 좋은, 또는 당신은뿐만 아니라, 방법을 만들 수 있습니다 isPam() static입니다.

0

내 이해에 따르면 isSpam() 방법은 그래서이 클래스SpamChecker인스턴스를 생성 액세스하려면 비 정적 하나입니다.

예 :

SpamChecker spamCheck = new SpamChecker(); 

if (spamCheck.isSpam(item)){ 



} 
관련 문제