1

こんにちは、本屋を作っているのですが、このエラー メッセージが表示されます

Duplicate method getApparel(String) in type Bookstore

アパレルはこれらのメソッドのクラスです。これを修正する方法。Eclipse は、これらの名前を変更することを提案しています。

public Apparel getApparel(String id)
{
    for(int i=0; i < apparel.size(); i++)
    {
        if(apparel.get(i).getId().equals(id))
        {
            return apparel.get(i);
        }
    }

    return null;
}

public ArrayList<Apparel> getApparel(String name)
{
    ArrayList<Apparel> apparel = new ArrayList<Apparel>();
    for(int i=0; i < this.apparel.size(); i++)
    {
        if(this.apparel.get(i).getName().equals(name))
        {
            apparel.add(this.apparel.get(i));
        }
    }

    return apparel;
}
4

4 に答える 4

3

Java では、同じメソッド名と同じ引数の型と数を持つ同じクラスに複数のメソッドを含めることはできません。このコンテキストでは、異なる戻り値は考慮されません。

この問題を解決するには、いずれかのメソッドの名前を変更するか、引数が一意になるように追加または変更する必要があります。

于 2013-04-23T01:57:44.873 に答える
0

このようなもの:

public Apparel getApparelById(String id)
{
    for(int i=0; i < apparel.size(); i++)
    {
        if(apparel.get(i).getId().equals(id))
        {
            return apparel.get(i);
        }
    }

    return null;
}

public ArrayList<Apparel> getApparelByName(String name)
{
    ArrayList<Apparel> apparel = new ArrayList<Apparel>();
    for(int i=0; i < this.apparel.size(); i++)
    {
        if(this.apparel.get(i).getName().equals(name))
        {
            apparel.add(this.apparel.get(i));
        }
    }

    return apparel;
}
于 2013-04-23T01:56:59.003 に答える
0

両方のメソッドのパラメーターの型は同じですが、戻り値の型が異なり、これは不可能です。Java言語仕様から:

Two methods have the same signature if they have the same name and argument types.

両方のメソッドのパラメーターの型が異なる場合、可能です。

于 2013-04-23T01:59:49.837 に答える