java - 我有 2 个结构相同的 bean 和 2 个结构相同的 getter 语句,但只有一个有效

标签 java debugging netbeans constructor javabeans

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

这是我尝试构建它时的错误:

cannot find symbol symbol : constructor BalanceBean(java.lang.String) location: class 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:

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 语句:

BalanceBean balanceBean = (BalanceBean)session.getAttribute("balanceBean");
String balance = request.getParameter("balance");
balanceBean = new BalanceBean(balance);
session.setAttribute("balanceBean", balanceBean);

无论出于何种原因,BalanceBean 都出现在以下行中:balanceBean = new BalanceBean(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 中没有将 String 作为唯一参数的构造函数。

你有:

public BalanceBean (String balance, String id) 

并且正在尝试调用:

balanceBean = new BalanceBean(balance);

编辑:如果您想添加第二个构造函数,您可以:

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

关于java - 我有 2 个结构相同的 bean 和 2 个结构相同的 getter 语句,但只有一个有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5711560/

相关文章:

java - PHP flush() 的 Java 等价物是什么?

java - 如何保存并通过电子邮件发送我的 .java 文件? (初学者)

javascript - 轻松查看什么 javascript 代码称为 Web 服务

ios - NSDictionary 被视为 bool 值 - 无法调试

ios - XCode 宏上的符号断点

java - 如何在 Netbeans 中将 DocumentListener 与 jTextField 结合使用?

java - 通过 JDBC 连接时在 session 信息中显示应用程序名称

java - 在方法之间传递变量的问题

netbeans - Glassfish 登录服务器错误问题,

Java swing 不显示源代码的更改