저는 Java에 익숙하지 않습니다. 글쎄, 나는 인터페이스가 구체적인 서브 클래스에 의해 구현 될 추상 메소드만을 제공한다는 것을 안다. 희망이 사실 (적어도). 그래서 내가 작성하고 엑셀 파일을 읽고, JXL API의 샘플 코드를 공부하고, 나는이 점에 도착 :jxl api : writablesheet가 인터페이스 인 이유는 무엇입니까?
입니다workbook = Workbook.createWorkbook(new File("/home/me/workspace/files/output.xls"));
WritableSheet sheet = workbook.createSheet("first sheet", 0);
이 통합 문서 객체가 이전에 인스턴스화하고 WritableWorkbook 객체가되었습니다. WritableWorkbook의 수퍼 클래스 인 통합 문서에서 제공하는 정적 메서드를 사용하여 통합 문서를 만들고 있습니다. 그리고이 때까지, 나는 거기에있다. 하지만 두 번째 명령에서 내가 뭘하고 있니? 시트가 "WritableSheet"이지만 인터페이스입니다! 그리고 API를 보면 구현 클래스가 없습니다. "WritableSheet"는 다른 인터페이스의 하위 인터페이스이며 "Sheet"입니다. 두 인터페이스. 하지만 인터페이스에서 객체를 만들 수 없다고 생각했습니다. 그런 다음 createSheet 메서드 (WritableWorkbook에서 제공)를 사용하여 WritableSheet를 만들고있는 것 같습니다. 그런 다음 샘플 코드에서 나는이 도착 :
Label lblNome = new Label(0, 1, "Nome:");
sheet.addCell(lblNome);
문제 없음 첫 번째 줄, 나는 새로운 요소, 라벨 (즉, 텍스트 세포 인)을 생성; 하지만 두 번째? 다시, addCell은 API를 보는 인터페이스 메소드입니다! 시트가 이전 구현물 인 동안? 인터페이스의 나에게 보인다. 인터페이스가 추상적 인 방법을 제공한다면 어떤 방법을 사용하고 있습니까?
당신은 나에게 그것을 명확히 것이다? 결국 코드가 작동하지만 인터페이스 (시트 및 WritableSheet)가 어떻게 작동하는지 명확하지 않습니다.
감사합니다.
감사합니다! 매우 명확한! –