Java 我有两个结构相同的bean和两个结构相同的getter语句,但只有一个有效

Java 我有两个结构相同的bean和两个结构相同的getter语句,但只有一个有效,java,debugging,netbeans,constructor,javabeans,Java,Debugging,Netbeans,Constructor,Javabeans,我有两个结构完全相同的bean。我以完全相同的方式将这两个bean拉入同一个java类。但其中只有一个有问题 以下是我尝试构建它时出现的错误: 找不到符号 符号:构造函数BalanceBean(java.lang.String) 位置:类HWpackage.BalanceBean 这是工作bean UserBean2 package HWpackage; public class UserBean2 { private String id; public UserBean2(Stri

我有两个结构完全相同的bean。我以完全相同的方式将这两个bean拉入同一个java类。但其中只有一个有问题

以下是我尝试构建它时出现的错误:

找不到符号 符号:构造函数BalanceBean(java.lang.String) 位置:类HWpackage.BalanceBean

这是工作bean UserBean2

package HWpackage;

public class UserBean2 {
  private String id;

  public UserBean2(String id) {
    setUsername(id);
  }

  public String getUsername() {
    return(id);
  }

  public void setUsername(String id) {
    if (!isMissing(id)) {
      this.id = id;
    }
  }

  private boolean isMissing(String value) {
    return((value == null) || (value.trim().equals("")));
  }
}
下面是正在工作的getter语句:

  UserBean2 userBean2 = (UserBean2)session.getAttribute("userBean2");
  String un = request.getParameter("id");
  userBean2 = new UserBean2(un);
  session.setAttribute("userBean2", userBean2);
BalanceBean balanceBean = (BalanceBean)session.getAttribute("balanceBean");
String balance = request.getParameter("balance");
balanceBean = new BalanceBean(balance);
session.setAttribute("balanceBean", balanceBean);
现在将其与非工作代码进行比较

平衡豆:

package HWpackage;

public class BalanceBean {
  private String balance, id;

  public BalanceBean (String balance, String id) {
    setBalance(balance);
    setID(id);
  }

  public String getBalance() {
    return(balance);
  }

  public void setBalance(String balance)
  {
      this.balance = balance;
  }

  public String getID() {
    return(id);
  }

  public void setID(String id)
  {
      this.id = id;
  }
}
以及它的getter声明:

  UserBean2 userBean2 = (UserBean2)session.getAttribute("userBean2");
  String un = request.getParameter("id");
  userBean2 = new UserBean2(un);
  session.setAttribute("userBean2", userBean2);
BalanceBean balanceBean = (BalanceBean)session.getAttribute("balanceBean");
String balance = request.getParameter("balance");
balanceBean = new BalanceBean(balance);
session.setAttribute("balanceBean", balanceBean);
不管出于什么原因,行中的BalanceBean:BalanceBean=newbalancebean(balance); 这是所有问题的根源

有人能告诉我为什么吗

更新: 好的,如果我将BalanceBean更改为:

package HWpackage;

public class BalanceBean {
  private String balance, id;

  public BalanceBean (String balance) {
    setBalance(balance);        
  }

  public String getBalance() {
    return(balance);
  }

  public void setBalance(String balance)
  {
      this.balance = balance;
  }

  public String getID() {
    return(id);
  }

  public void setID(String id)
  {
      this.id = id;
  }
}

如何添加回我的字符串id?

它们不完全相同,错误是准确地告诉您出了什么问题:

cannot find symbol symbol : constructor BalanceBean(java.lang.String)
BalanceBean中没有将
字符串作为唯一参数的构造函数

你有:

public BalanceBean (String balance, String id) 
并试图拨打:

balanceBean = new BalanceBean(balance);
编辑:如果要添加第二个构造函数,您完全可以:

public BalanceBean (String balance) {
    setBalance(balance);
}

它们不完全相同,错误在于准确地告诉您出了什么问题:

cannot find symbol symbol : constructor BalanceBean(java.lang.String)
BalanceBean中没有将
字符串作为唯一参数的构造函数

你有:

public BalanceBean (String balance, String id) 
并试图拨打:

balanceBean = new BalanceBean(balance);
编辑:如果要添加第二个构造函数,您完全可以:

public BalanceBean (String balance) {
    setBalance(balance);
}

BalanceBean有一个双参数构造函数<代码>公共余额bean(字符串余额,字符串id)
。您只传递一个参数
新BalanceBean(balance)

BalanceBean有一个双参数构造函数<代码>公共余额bean(字符串余额,字符串id)
。您只传递了一个参数
新BalanceBean(balance)

看看BalanceBean类构造函数,似乎您还没有定义一个只有一个参数的构造函数。

看看BalanceBean类构造函数,您似乎没有定义只有一个参数的构造函数。

构造函数BalanceBeam(String,String)需要两个参数,而您只提供了一个参数。因此,需要BalanceBeam(String)类型的新构造函数

构造函数BalanceBeam(String,String)需要两个参数,而您只提供了一个参数。因此需要一个BalanceBeam(String)类型的新构造函数

我没有意识到我不能把所有需要的东西都放进去。那么我能在同一个bean中同时拥有平衡和id吗?如果是这样的话,我该怎么设置呢?我有点不明白你在问什么。你想做什么就做什么。当前您正在尝试调用一个不存在的构造函数。你的构造函数需要2个字符串,你给它一个。创建第二个构造函数,如果您愿意,它只接受一个字符串,就像在您的另一个bean中一样(参见上面编辑的答案)。非常感谢您的帮助,如果您能帮助我,我将更新我的问题,我将不胜感激@Turk,您似乎不了解方法或构造函数如何工作的基础知识。我不知道如何在这种情况下提供帮助,除了说您需要从基本编程教程开始。如果您想提供2个字符串(balance和id),那么您的第一个构造函数就可以了,但您没有这样做。现在你把它改成只接受一个论点。啊!谢谢你的帮助,我想我明白了。我查阅了一些关于构造器的信息,我相信我找到了答案。你帮了大忙!我不知道我不能把我需要的东西都放进去。那么我能在同一个bean中同时拥有平衡和id吗?如果是这样的话,我该怎么设置呢?我有点不明白你在问什么。你想做什么就做什么。当前您正在尝试调用一个不存在的构造函数。你的构造函数需要2个字符串,你给它一个。创建第二个构造函数,如果您愿意,它只接受一个字符串,就像在您的另一个bean中一样(参见上面编辑的答案)。非常感谢您的帮助,如果您能帮助我,我将更新我的问题,我将不胜感激@Turk,您似乎不了解方法或构造函数如何工作的基础知识。我不知道如何在这种情况下提供帮助,除了说您需要从基本编程教程开始。如果您想提供2个字符串(balance和id),那么您的第一个构造函数就可以了,但您没有这样做。现在你把它改成只接受一个论点。啊!谢谢你的帮助,我想我明白了。我查阅了一些关于构造器的信息,我相信我找到了答案。你帮了大忙!我不知道我不能把我需要的东西都放进去。那么我能在同一个bean中同时拥有平衡和id吗?如果是的话,我该怎么设置呢?我不知道我不能把我需要的东西都放进去。那么我能在同一个bean中同时拥有平衡和id吗?如果是,我该如何设置?