-1

データベースを操作するプロジェクトがあり、学生、モジュール、登録などのメインクラスがいくつかあり、それらを管理する3つのクラスがあります。ここでの問題は、

クラス Student には、このコードがあります

プライベート文字列 ID;

@DomainConstraint(optional = false, mutable = true, type = Type.String, length = 50)
private String name;

@DomainConstraint(optional = false, mutable = true, type = Type.String, length = 20)
private String dob;

@DomainConstraint(optional = false, mutable = true, type = Type.String, length = 50)
private String address;

@DomainConstraint(optional = false, mutable = true, type = Type.String, length = 50)
private String email;

private static int autoIncrementInt = 0;

public Student(String name, String dob, String address, String email) {
    this.name = name;
    this.dob = dob;
    this.address = address;
    this.email = email;
    idGenerator();
}

しかし、クラス EnrolmentManager では、学生の名前を取得して、このようなコースに登録したいと考えています

public void load() throws SQLException {
    Connection con;
    Properties connectionProps = new Properties();
    // set up properties, e.g. user name/password
    con = DriverManager.getConnection("jdbc:derby:courseman;create=false", connectionProps);
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT Student.name as studentName, Module.name as Modulename, Enrolment.internalMark,Enrolment.examMark FROM Student,Module,Enrolment WHERE Student.id=Enrolment.sid AND Module.code=Enrolment.mcode");

    while (rs.next()) {
        String s = rs.getString("studentName");
        String m = rs.getString("Modulename");
        double y = rs.getDouble("internalMark");
        double d = rs.getDouble("examMark");
        Enrolment e = new Enrolment( s, m, y, d);
        enrolments.add(e);
    }
}

クラス Enrollment にコンストラクターがあるため、ここにエラーがあります

public Enrolment(Student stu, Module module,Double internalMark, Double examMark) {
    this.student = stu;
    this.module = module;
    this.internalMark = internalMark;
    this.examMark = examMark;
    finalGradeGenerator();
}

したがって、クラスEnrolmentManagerでは、コンストラクターの登録が未定義であるというエラーがあります。この問題を解いてくれませんか、ありがとう

4

2 に答える 2

1

登録クラスのコンストラクターは、パラメーターとしてStudentstu)とModuleオブジェクト(module)を想定していますが、それらをオブジェクトとして解析していStringます。

于 2012-05-15T08:05:28.630 に答える
0

これは、登録クラスが Module と Student をパラメーターとして期待しているためで、 2 Strings を指定しています。

//以下は実際のコンストラクタ

public Enrolment(Student stu, Module module,Double internalMark, Double examMark) 

しかし、あなたは次のように渡しています

public Enrolment(String stu, String module,Double internalMark, Double examMark)
于 2012-05-15T08:06:18.693 に答える