java中的方法重载错误

java中的方法重载错误,java,overloading,Java,Overloading,你好,我正在建立一个书店,我收到了这个错误消息 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

你好,我正在建立一个书店,我收到了这个错误消息

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;
}
public Apparel getApparel(字符串id)
{
对于(int i=0;i
类似这样的内容:

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;
}
公共服装getApparelById(字符串id)
{
对于(int i=0;i
在Java中,同一类中不能有多个方法具有相同的方法名、相同的参数类型和计数-在此上下文中不考虑不同的返回值


要解决此问题,必须重命名其中一个方法,或者添加或更改参数,使其唯一。

两个方法具有相同的参数类型,但返回类型不同,这是不可能的。发件人:

如果两个方法具有相同的名称和参数类型,则它们具有相同的签名。


如果两个方法具有不同的参数类型,则可能。

两个方法getApparel(String)具有相同的方法签名!java和C++禁止用相同的方法签名的多个方法。否则,编译器将无法识别要调用的方法

方法签名由以下内容标识:方法名称+方法参数列表(类型列表)。编译器不按返回类型区分方法


有关详细信息,请参阅:

您可能可以使用Linq简化For循环。