2012-10-02 4 views
1

Java에서 웹 프로젝트를 개발할 때 MVC를 사용합니다.
제 문제는 클래스에서 세 가지 다른 빈을 반환해야한다는 것입니다. 3 개의 빈은 모두 여러 개의 객체를 가지고 있기 때문에 지금 나는 각각의 빈 객체를리스트에 추가하고 3 개의 다른리스트를 반환하고있다.
알기 쉽게 주석을 저장하는 테이블에서 모든 내용을 검색해야합니다. 따라서 모든 주석 텍스트는 하나의 bean이라는 주석에 저장되고 listcomment라는 목록에 추가됩니다. 주석을 작성한 멤버의 이름은 member라고하는 다른 bean에 추가되고 다시 listmember라는 목록에 추가됩니다.
이렇게 두 가지 빈이 같은 목록에 추가 될 수 있도록 가능한 방법이 있습니까? 다른 콩 모두가 어떤 방법 (또는 방법)를 포함하는 경우동일한 목록에서 두 개의 다른 빈을 반환합니다.

public class TeleCommentView { 

int qid; 
TeleComment comment; 
TeleHospital hospital; 
doctorperson doctor; 

ConnectionFile connection = new ConnectionFile(); 
List<TeleComment> listcomment = new ArrayList<TeleComment>(); 
List<doctorperson> listdoctor = new ArrayList<doctorperson>(); 
List<TeleHospital> listhospital = new ArrayList<TeleHospital>(); 




public TeleCommentView(int qid) 
{ 
    this.qid = qid; 
    process(); 
} 
public void process() 
{ 
    int count=0; 
    try 
    { 
    Connection con = connection.connectionfile(); 
    PreparedStatement pstmt = con.prepareStatement("select TeleHospital.HospitalName,DoctorDetail.Name,TeleComment.Comment,TeleComment.SDate from" 
                + "((TeleComment left join TeleHospital on TeleHospital.HospitalId=TeleComment.Hid) " 
                + "left join DoctorDetail on DoctorDetail.DoctorId = TeleComment.Did) " 
                + "where TeleComment.Qid=?"); 
    ResultSet rs = pstmt.executeQuery(); 

    while(rs.next()) 
    { 
     comment = new TeleComment(); 

     comment.setComment(rs.getString("Comment")); 
     comment.setSdate(rs.getDate("SDate")); 

     listcomment.add(count,comment) ; 

     /******End of comment**************/ 

     //Add doctor or hospital name as required 

     doctor = new doctorperson(); 
     hospital = new TeleHospital(); 

     if(rs.getString("HospitalName").equals(null)) 
      { 
       doctor.setName(rs.getString("Name")); 
       listdoctor.add(count,doctor); 
      } 
      else 
       { 
        hospital.setHospitalname(rs.getString("HospitalName")); 
        listhospital.add(count,hospital); 
       } 
     count++; 
     } 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 

} 

    public List getCommentList() 
    { 
    return listcomment; 
    } 

public List getDoctorList() 
    { 
    return listdoctor; 
    } 

public List getHospitalList() 
    { 
    return listhospital; 
    } 

} 
+0

먼저 코드를 작성

여기에 단지 질문있어 비슷한 질문입니다. –

답변

2

, 당신은 interface를 작성하고 각각의 콩이 그것을 구현할 수 있습니다.

Treating different objects the same

바보 예제 코드 :

interface CommentItem { 
    public String getComment(); 
} 


class ModeratorComment implements CommentItem { 
    public String getComment() { 
     return "Comment from moderator"; 
    } 
    // other moderator-specific code... 
} 



class StudentComment implements CommentItem { 
    public String getComment() { 
     return "Comment from student"; 
    } 
    // other student-specific code... 
} 


class CommentContainer { 

    private List<CommentItem> commentList; 

    public List<CommentItem> getCommentList() { 
     return commentList; 
    } 

    public void addComment(CommentItem someComment) { 
     commentList.add(someComment); 
    } 
} 


class TestIt() { 

    public static void main(String[] args) { 

     StudentComment sc = new StudentComment(); 
     ModeratorComment mc = new ModeratorComment(); 

     CommentContainer comments = CommentContainerFactory.createCommentContainer(); 
     comments.add(sc); 
     comments.add(mc); 

     for (CommentItem ci : comments.getCommentList()) { 
      System.out.println(ci.getComment()); 
     } 

    } 

} 
관련 문제