1

重複の可能性:
Java の非静的メソッド getBalance は、静的コンテキストから参照できません

別のクラスの 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;
    }
}

4

3 に答える 3

0

DantuchまたはYogendraの答えは良いですが、メソッドisPam()を静的にすることもできます。

于 2012-10-17T05:18:12.167 に答える
0

次のように記述します。

SpamChecker spamChecker = new SpamChecker();
if (spamChecker.isSpam(item)) {
   // <--- your logic
}
于 2012-10-17T04:57:19.430 に答える
0

私の理解によると、isSpam()メソッドは非静的であるため、これにアクセスするには class のインスタンスを SpamChecker作成します。

例えば:

SpamChecker spamCheck = new SpamChecker();

if (spamCheck.isSpam(item)){



}
于 2012-10-17T05:25:30.440 に答える