gpt4 book ai didi

java - 无法识别同一包中不同类的构造函数。

转载 作者:行者123 更新时间:2023-12-01 16:35:17 29 4
gpt4 key购买 nike

所以我要发布的这两个文件都在我的数据库包中。 DBBinding 类只需要创建一个对象,其中一个字符串作为键,一个字符串作为值。然后 DBrecord 将保留 DBBindings 的集合,这些 DBBindings 都具有相同的键字符串但不同的值字符串。由于某种原因,我无法想到/找到在 DBrecord 中创建 add 方法的正确方法,以便它调用 DBBinding 类/对象构造函数。

这是应该添加绑定(bind)的方法:

private void addRecord(String key_, String value_)
{
//DBBinding myDBBinding=new DBBinding(key_, value_);//constructor not defined error
//DBBinding myDBBinding(key_,value_);
//DataBase.DBBinding myDBBinding=new DataBase.DBBinding(key_, value_);//constructor not defined error

}

这是 DBBinding 代码,后面是 DBrecord 代码。

package DataBase;

public class DBBinding {

private String key;
private String value;

public void DBBinding(String key_, String value_)
{
String key =new String(key_);
String value=new String(value_);
}

//public String toString()
//{return key+": "+value;}

}

package DataBase;
//package DataBase.*;
import DataBase.*;//did not help ... ?

public class DBrecord {

boolean select;
String key;
//need some type of collection to keep bindings.

public void DBrecord()
{
DBrecord myRecord=new DBrecord();
select=false;
}

private void addRecord(String key_, String value_)
{
//DBBinding myDBBinding=new DBBinding(key_, value_);//constructor not defined error
//DBBinding myDBBinding(key_,value_);
//DataBase.DBBinding myDBBinding=new DataBase.DBBinding(key_, value_);//constructor not defined error

}

public String toString()
{
//out put key first then all values in collection/group/record. use correct formatting.
}



}

最佳答案

DBBinding类中,您必须有public DBBinding(String key_, String value_)void使“构造函数”实际上成为一个方法:-)

您在 DBrecord 中遇到相同的错误。

顺便说一句,不要这样做:

String key =new String(key_);

字符串是不可变的,如果你“共享”它们,什么也不会发生。但是您的代码强制 Java 创建一个具有完全相同值的新对象。所以只使用

String key = key_;

但是,在您的情况下,即使这是错误的,因为您创建了一个新的局部变量key“隐藏”类变量key。看here以获得解释。

所以 DBBinding 应该看起来像:

package DataBase;

public class DBBinding {

private String key;
private String value;

public DBBinding(String key_, String value_)
{
key = key_;
value = value_;
}
...
}

关于java - 无法识别同一包中不同类的构造函数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854068/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com