Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    uso ereditarietà in org.apache.poi

    Ciao, devo fare un'elaborazione su un file excel con le librerie org.apache.poi., a seconda del tipo di excel che mi arriva uso
    1) HSSFWorkbook

    java.lang.Object
    extended by org.apache.poi.POIDocument
    extended by org.apache.poi.hssf.usermodel.HSSFWorkbook

    All Implemented Interfaces:
    Workbook

    oppure

    2) XSSFWorkbook

    java.lang.Object
    extended by org.apache.poi.POIXMLDocumentPart
    extended by org.apache.poi.POIXMLDocument
    extended by org.apache.poi.xssf.usermodel.XSSFWorkbook

    All Implemented Interfaces:
    java.lang.Iterable<XSSFSheet>, Workbook


    ho scritto qualcosa tipo
    codice:
                         Workbook workBook =null;
    			 
    			if(condizione){
    				  workBook = new XSSFWorkbook(...);
    				 
    				 
    			}else{
    				 
     	                      workBook = new HSSFWorkbook (...);
     		                   
    			}
    dove Workbook è un'interfaccia comune a XSSFWorkbook e a HSSFWorkbook

    è corretto come uso dell'ereditarietà o era meglio fare in qualche altra maniera?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: uso ereditarietà in org.apache.poi

    Originariamente inviato da MyBloodyV.
    dove Workbook è un'interfaccia comune a XSSFWorkbook e a HSSFWorkbook

    è corretto come uso dell'ereditarietà o era meglio fare in qualche altra maniera?
    Grazie
    Quello che hai fatto è tecnicamente corretto, ed è il minimo che puoi fare.
    Sempre ammesso che il solo tipo Workbook ti permetta di fare quello che vuoi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: uso ereditarietà in org.apache.poi

    Originariamente inviato da andbin
    Quello che hai fatto è tecnicamente corretto, ed è il minimo che puoi fare.
    Sempre ammesso che il solo tipo Workbook ti permetta di fare quello che vuoi.
    mi pare che sia solo lui a pemettermi questa cosa

    che intendi col "Minimo"? si poteva fare meglio?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: uso ereditarietà in org.apache.poi

    Originariamente inviato da MyBloodyV.
    mi pare che sia solo lui a pemettermi questa cosa
    Con l'ultima mia frase sottintendevo il fatto che essendo una interfaccia, ha solo i metodi che hanno senso in generale per un "workbook". Non ha metodi più specifici che ognuno dei due tipi HSSFWorkbook/XSSFWorkbook può offrire.
    Quindi se le operazioni che devi fare sono solo quelle che puoi "vedere" attraverso l'interfaccia ... ok.

    Originariamente inviato da MyBloodyV.
    che intendi col "Minimo"? si poteva fare meglio?
    Un'altra possibilità (ma più complessa) sarebbe quella di avere una tua gerarchia, classe base e due sottoclassi che "incapsulano" ciascuna uno dei due tipi, in modo da "appiattire" le differenze tra i due tipi e magari offrire anche operazioni composite che servono a te.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Re: Re: Re: Re: uso ereditarietà in org.apache.poi

    Originariamente inviato da andbin
    Con l'ultima mia frase sottintendevo il fatto che essendo una interfaccia, ha solo i metodi che hanno senso in generale per un "workbook". Non ha metodi più specifici che ognuno dei due tipi HSSFWorkbook/XSSFWorkbook può offrire.
    Quindi se le operazioni che devi fare sono solo quelle che puoi "vedere" attraverso l'interfaccia ... ok.

    Un'altra possibilità (ma più complessa) sarebbe quella di avere una tua gerarchia, classe base e due sottoclassi che "incapsulano" ciascuna uno dei due tipi, in modo da "appiattire" le differenze tra i due tipi e magari offrire anche operazioni composite che servono a te.
    insomma questa ipotesi è da valutare nel caso ad esempio ci sia un metodo metodo1() che HSSFWorkbook ha e che non c'è invece nella interfaccia Workbook, e noi dobbiamo usare quel metodo, è questo uno scenario giusto?

    Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.