2014-10-11 1 views
0

코드를 받고 있지 않다 :.NET에서 Java 웹 서비스를 사용하려고합니다. 내가 적절한 출력을

public static void main(String[] args) { 
    try { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter the BookName:"); 
     String bookName = br.readLine(); 
     System.out.println("Book Id is: " +bookInfo(bookName).getBookAvail().get(0).getBookID().toString()); 
     System.out.println("Book Name is: " +bookInfo(bookName).getBookAvail().get(0).getBookName().toString()); 
    } catch (IOException ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    try { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter the StudentID:"); 
     String studentID = br.readLine(); 
     System.out.println("Student Information is: " +studentInfo(studentID)); 
    } catch (IOException ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

private static ArrayOfBookAvail bookInfo(java.lang.String bookName) { 
    org.tempuri.BookService service = new org.tempuri.BookService(); 
    org.tempuri.IBookService port = service.getBasicHttpBindingIBookService(); 
    return port.bookInfo(bookName); 
} 

private static ArrayOfStudInfo studentInfo(java.lang.String studentID) { 
    org.tempuri.BookService service = new org.tempuri.BookService(); 
    org.tempuri.IBookService port = service.getBasicHttpBindingIBookService(); 
    return port.studentInfo(studentID); 
} 

} 

을하고 난 점점 오전 출력은 다음과 같습니다

Enter the BookName: 
Core Servlets and JavaServer Pages, Volume 2:Advanced Technologies 
Book Id is: [email protected] 
Enter the StudentID: 
    13MCAL058 
Student Information is: [email protected] 

것은 적절한 출력을 얻을 도와주세요. 미리 감사드립니다. bookInfo(bookName).getBookAvail().get(0).getBookID()JAXBElement을 반환처럼

+0

예상되는 출력은 무엇입니까? 코드를 단순화 할 수 있습니까? 읽을 것이 많습니다 – orhanhenrik

+0

무슨 오류입니까? 그것은 그것을 오버라이드하지 않은 클래스에서 전형적인'toString'처럼 보입니다. – Makoto

+0

그건 그렇고, 여기에 어떤 .NET 코드도 보이지 않습니다. – ForNeVeR

답변

0
Book Id is: [email protected] 

보인다. 값을 얻으려면 toString() 대신 getValue()으로 전화하면됩니다. toString()을 호출 할 때 클래스가 상속 된 Object.classtoString()을 재정의하지 않으면 객체의 메모리 위치 인 Object#toString()이 호출됩니다.

bookInfo(bookName).getBookAvail().get(0).getBookID().getValue(); 

값이 단지 프리미티브 또는 문자열이라고 가정하면 출력이 양호해야합니다.


Student Information is: 
      [email protected] 

나는 ArrayOfStudInfo 클래스가 무엇인지 모른다. 그러나 문자열 표현을 얻기 위해 Object#toString()이 호출되는 것과 동일한 문제인 것으로 보입니다. ArrayOfStudInfo 클래스에 대해 더 알지 못하는 경우 클래스라고 가정하면 해당 클래스에서 toString()을 재정 의하여 방금 문자열 표현을 표시 할 수 있습니다. 예를 들어

class ArrayOfStudInfo { 
    StudentInfo[] studentInfoArray; 

    @Override 
    public String toString() { 
     StringBuilder builder = new StringBuilder(); 
     for (StudentInfo info : studentInfoArray) { 
      builder.append(info.getFirstName()) 
        .append(" ") 
        .append(info.getLastName()) 
        .append("\n"); 
     } 
     return builder.toString(); 
    } 
} 

이제는 어떤 수업으로 구성되어 있는지 잘 모르겠다. 클래스를 변경할 수 없으면 반환 된 객체에서 값을 추출하여 문자열을 만들 수 있습니다. 이에서


요점은 당신이 시도하고 인쇄 문에 비 원시적 객체를 넣을 때, 그것은 toString() 방법으로 표시되는 문자열 표현을 가질 필요가 있다는 것입니다.

+0

고맙습니다 ... 오류가 해결되었습니다 ... 감사합니다. –

관련 문제