我有两个结构完全相同的bean。我将这两个bean以完全相同的方式引入同一个java类。然而,其中只有一个有问题。
当我尝试构建它时出现错误:
无法找到符号 symbol:构造函数BalanceBean(java.lang.String) location:类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;
}
}
及其吸气声明:
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;
}
}
如何添加我的String ID?
答案 0 :(得分:4)
它们不相同,错误告诉你到底出了什么问题:
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);
}
答案 1 :(得分:1)
BalanceBean有两个arg构造函数。 public BalanceBean (String balance, String id)
。您只传递一个参数new BalanceBean(balance)
答案 2 :(得分:0)
看一下BalanceBean类构造函数,看来你还没有定义只有一个参数的构造函数。
答案 3 :(得分:0)
构造函数BalanceBeam(String,String)需要2个参数,而您只提供一个参数。因此,需要一个类型为BalanceBeam(String)的新构造函数