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

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

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_;
    }
    ...
}

09-08 08:28