# Apache poi: Deprecated getCellType



## Kababär (26. Okt 2016)

Hi,

ich habe ein deprecated Problem mit apache Poi, seit dem ich mir die neuere Version 3.19 geholt habe. Und zwar handelt es sich um eine Objektmethode, mit der man das Format der Excel-Zelle herausfinden kann (numeric, string, boolean, blank, error, ..).
Vor einem Jahr habe ich schon mal mit apache poi gearbeitet (XSSF) und da ging es so:

```
Cell cell = row.getCell(index);
if(cell.getCellType() == 1){
...
}
```
wobei 1 für String stand.
Vor ein paar Wochen habe ich dann diese Möglichkeit entdeckt:

```
cell.getCellType() == Cell.CELL_TYPE_STRING
```

Dann habe ich aber wie gesagt auf Version 3.19 geupgradet und jetzt werden mir beide Varianten als "deprecated" gekennzeichnet und komme auf die moderne Lösung nicht so ganz klar.
Laut der Übersichtsliste (https://poi.apache.org/apidocs/deprecated-list.html) ändert sich eigentlich nichts an der Methode "getCellType". Nur wird ein Enum zum Vergleichen benutzt, also in etwa

```
if(cell.getCellType() == CellType.String){
...
}
```

Trotzdem wird mir hier getCellType() als deprecated markiert, auch getCellTypeEnum() (was gelöscht werden soll, wenn der Return-Type auf das Enum in der Methode getCellType geändert wurde).

Kann mir da jemand helfen? Oder soll ich die Meldung ignorieren und einfach mal abwarten was sich in den nächsten Wochen, Monaten tut?


----------



## Thallius (26. Okt 2016)

Also so wie ich die Doku verstehe

muss man in 3.x noch 

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html#getCellTypeEnum()

verwenden. Erst in 4.0 wird das wieder returned auf getCellType()

Gruß

Claus


----------



## Kababär (26. Okt 2016)

Aso okay. Also haben die das quasi im Vorfeld schon als deprecated markiert, wobei es noch bis Version 4.2 zu verwenden ist. (?)

Danke dir für die schnelle Hilfe


----------



## mrBrown (26. Okt 2016)

Kababär hat gesagt.:


> Aso okay. Also haben die das quasi im Vorfeld schon als deprecated markiert, wobei es noch bis Version 4.2 zu verwenden ist. (?)


Frühzeitig als Deprecated zu makieren ist der übliche Weg 

Wenn man jetzt umsteigt gibts eine Warnung und Hinweis zur Umstellung und man hat bis zur 4.0 Zeit, seinen Code anzupassen. Wenn man direkt umstellen würde, würde der Build direkt failen.

In der alten Variante ist es nur noch bis 4.0 verwendbar, dann wird umgestellt auf den Enum. Bis 4.2 ist nur noch die zusätzliche Variante nutzbar, die mit 3.x den Enum bereitstellt.


----------

