前提
Javaでフォロー機能追加をしようとしていますがうまくいきません。
followメソッドのFollowViewインスタンス作成している際にエラーが発生しています。
発生している問題・エラーメッセージ
コンストラクター FollowView(null, EmployeeView, Employee) は未定義です
該当のソースコード
public void follow() throws ServletException, IOException { //フォローしている(ログインしている)人 EmployeeView followerEv = (EmployeeView) getSessionScope(AttributeConst.LOGIN_EMP); Employee followerE = EmployeeConverter.toModel(followerEv); //フォローされる人 EmployeeView followEv = service.findOne(toNumber(getRequestParam(AttributeConst.EMP_FOLLOWER))); Employee followE = EmployeeConverter.toModel(followEv); //インスタンス作成 **_↓該当箇所_** FollowView fv = new FollowView( null,//Idを自動生成 followEv, followerE ); } }
###関連コード1
package actions.views; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import models.Employee; /** * 従業員情報について画面の入力値・出力値を扱うViewモデル * */ @Getter //全てのクラスフィールドについてgetterを自動生成する(Lombok) @Setter //全てのクラスフィールドについてsetterを自動生成する(Lombok) @NoArgsConstructor //引数なしコンストラクタを自動生成する(Lombok) @AllArgsConstructor //全てのクラスフィールドを引数にもつ引数ありコンストラクタを自動生成する(Lombok) public class FollowView { /** * id */ private Integer id; /** * フォローされる人 */ private Employee follow; /** * フォローした人 */ private Employee follower; }
###関連コード2
package actions.views; import java.util.ArrayList; import java.util.List; import models.EmployeeFollow; /** * 従業員データのDTOモデル⇔Viewモデルの変換を行うクラス * */ public class FollowConverter { /** * ViewモデルのインスタンスからDTOモデルのインスタンスを作成する * @param ev EmployeeViewのインスタンス * @return Employeeのインスタンス */ public static EmployeeFollow toModel(FollowView fv) { return new EmployeeFollow( fv.getId(), fv.getFollow(), //フォローされた人 fv.getFollower());//フォローした人 } /** * DTOモデルのインスタンスからViewモデルのインスタンスを作成する * @param e Employeeのインスタンス * @return EmployeeViewのインスタンス */ public static FollowView toView(EmployeeFollow f) { if(f == null) { return null; } return new FollowView( f.getId(), f.getFollow(), f.getFollower()); } /** * DTOモデルのリストからViewモデルのリストを作成する * @param list DTOモデルのリスト * @return Viewモデルのリスト */ public static List<FollowView> toViewList(List<EmployeeFollow> list) { List<FollowView> evs = new ArrayList<>(); for (EmployeeFollow f : list) { evs.add(toView(f)); } return evs; } /** * Viewモデルの全フィールドの内容をDTOモデルのフィールドにコピーする * @param e DTOモデル(コピー先) * @param ev Viewモデル(コピー元) */ public static void copyViewToModel(EmployeeFollow f, FollowView fv) { f.setId(fv.getId()); f.setFollow(fv.getFollow()); f.setFollower(fv.getFollower()); } }
回答3件
あなたの回答
tips
プレビュー