2016-05-30 8 views
1

回答を探すときに同様の質問がありましたが、誰も私の要求に答えませんでした。空白の最終的なフィールドを初期化できません

私は、次のエラーを得たモデル総会 "

@Entity 
@Scope("prototype") 
@Table(name="MEETINGS") 
public class Meeting { 



@Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
private Integer id; 

@NotEmpty 
@Column(name="name", nullable=false) 
private String name; 

@NotEmpty 
@Column(name="description", nullable=false) 
private String description; 

@NotEmpty 
@Column(name="allowStartStopRecording", nullable=false) 
private String allowStartStopRecording; 

@NotEmpty 
@Column(name="autoStartRecording", nullable=false) 
private String autoStartRecording; 

@NotEmpty 
@Column(name="record", nullable=false) 
private String record; 

@NotEmpty 
@Column(name="voiceBridge", nullable=false) 
private String voiceBridge; 

public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getDescription() { 
    return description; 
} 

public void setDescription(String description) { 
    this.description = description; 
} 

public String getAllowStartStopRecording() { 
    return allowStartStopRecording; 
} 

public void setAllowStartStopRecording(String allowStartStopRecording) { 
    this.allowStartStopRecording = allowStartStopRecording; 
} 

public String getAutoStartRecording() { 
    return autoStartRecording; 
} 

public void setAutoStartRecording(String autoStartRecording) { 
    this.autoStartRecording = autoStartRecording; 
} 

public String getRecord() { 
    return record; 
} 

public void setRecord(String record) { 
    this.record = record; 
} 

public String getVoiceBridge() { 
    return voiceBridge; 
} 

public void setVoiceBridge(String voiceBridge) { 
    this.voiceBridge = voiceBridge; 
} 


} 

とDAO「MeetingDAO」を作成しようとしているときに、

public interface MeetingDAO { 

Meeting meeting; 

String createMeeting(); 

String deleteMeeting(); 

String getMeetings(); 

String updateMeeting(); 
} 

を作成しました:空白の最終フィールド会議は持っていないかもしれませんミーティングミーティングを含む行で初期化されました。

ありがとうございます。

答えて

1

を見てくださいは:インタフェースで定義されて

すべての定数の値は暗黙のうち、公共 静的、および最終的なもの:https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html

と言われています。もう一度、これらの修飾子を省略することができます。

だから、インタフェースMeetingDAOで変数宣言Meeting meeting;があることが判明:public static final Meeting meeting;あなたが初期化されていないそれを残しました。これが理由です:blank final field meeting may not have been initializedコンパイルエラー。あなたのインターフェースMeetingDAOは、次のようになります

もう一つ(他のバリエーションが可能でもある):

import java.util.List; 

public interface MeetingDAO { 

    void createMeeting(Meeting meeting); 

    Meeting getMeeting(long meetingId); 

    void deleteMeeting(long meetingId); 

    List<Meeting> getMeetings(); 

    void updateMeeting(Meeting meeting); 
} 

あなたはどう思いますか?私は大きなミスを犯した

+0

さまざまな種類があり、パラメータだろう、私はテストしていた、帰国のタイプのために、よくこの に注意を払っていない、正しいですしようとしていると と働いている – Najoua

3

(注)インターフェイスにメンバ変数を宣言しようとしている。

public interface MeetingDAO { 

    Meeting meeting; 

あなたはインターフェイスではメンバ変数を宣言することはできません。メンバmeetingは自動的にpublic static final(定数)になり、初期化していません。

meetingMeetingDAOインターフェイスに宣言しないでください。タイプMeetingのメンバー変数を宣言する必要がある場合は、そのインターフェイスを実装するクラスで行います。しかし、MeetingDAOの実装にMeetingというタイプのメンバ変数があると正直言って、このメンバ変数はまったく持っていないはずです。

(また、インターフェイス内のすべてのメソッドがStringを返し、パラメータを取っていないのはなぜですか?それはあまり論理的ではありません)。

+0

ええ、あなたは私が彼らがこれは私がいたまさにです – Najoua

関連する問題