Java 无法从静态上下文引用非静态方法isSpam(MailItem)
可能重复:Java 无法从静态上下文引用非静态方法isSpam(MailItem),java,bluej,Java,Bluej,可能重复: 我试图访问另一个类的isSpam方法,但它不允许我访问。它一直说非静态方法不能被引用。能帮我一点忙吗? 这是我的isSpam代码和要检查的代码 publicsvoidpost(邮件项目) if(SpamChecker.isSpam(项目)){ } 字符串名称=item.getTo(); 如果(!items.containsKey(名称)){ items.put(name,new ArrayList()); } items.get(name).add(item); } 这是Spam
我试图访问另一个类的isSpam方法,但它不允许我访问。它一直说非静态方法不能被引用。能帮我一点忙吗? 这是我的isSpam代码和要检查的代码
publicsvoidpost(邮件项目)
if(SpamChecker.isSpam(项目)){
}
字符串名称=item.getTo();
如果(!items.containsKey(名称)){
items.put(name,new ArrayList());
}
items.get(name).add(item);
}
这是SpamChecker班级的isSpam
公共布尔isSpam(邮件项)
{
if(item.getSubject().toLowerCase().startsWith(“垃圾邮件”)){
返回true;
}else if(item.getSubject().toLowerCase()包含(“在线药房”)){
返回true;
}else如果(item.getSubject().toLowerCase()包含(“廉价伟哥”)){
返回true;
}else如果(item.getSubject().toLowerCase()包含(“通用伟哥”)){
返回true;
}else如果(item.getSubject().toLowerCase()包含(“假手表”)){
返回true;
}else if(item.getSubject().toLowerCase()包含(“副本监视”)){
返回true;
}否则{
返回false;
}
}
写为:
SpamChecker spamChecker = new SpamChecker();
if (spamChecker.isSpam(item)) {
// <--- your logic
}
SpamChecker SpamChecker=new SpamChecker();
if(spamChecker.isSpam(项目)){
//Dantuch或Yogendra的答案很好,或者您也可以将方法isPam()设置为静态。根据我的理解isSpam()
方法是一种非静态的方法,因此要访问它,请创建类的实例
例如:
SpamChecker spamCheck = new SpamChecker();
if (spamCheck.isSpam(item)){
}
SpamChecker spamChecker = new SpamChecker();
if (spamChecker.isSpam(item)) {
// <--- your logic
}
SpamChecker spamCheck = new SpamChecker();
if (spamCheck.isSpam(item)){
}