Unchecked cast je varovanie, ze pretypovanie nie je v case kompilacie bezpecne a v case behu mozu vybiehat ClassCastException. Ak ste si vedomi, ze take nieco za behu nenastane, anotaciou @SuppressWarnings("unchecked") na metode zrusite ten warning.

Popravde nechapem to pretypovanie na Collection. Kedze loadCollectionByQuery vracia Collection a getAllZipCodes() vracia tiez Collection, naco robite

return (Collection) loadCollectionByQuery()

?

Okrem toho, v Jave 5 a novsej by sa idealne mali pouzivat typovane kolekcie s generikami.

On 7. 2. 2011 10:07, jerzy burzek wrote:
Zdravim konferenciu, skusam sa hrat s generics a narazilo som na jeden problem, ktoremu velmi nerozumiem. Skusim nacrtnut: mam hierarchiu tried (JPA, ale to nie je asi podstatne) BaseEntity ZipCode extends BaseEntity Login extends BaseEntity atd potom mam abstraktnu triedu BaseManager, ktora implementuje metodu pre nacitanie kolekcie z databazy: protected Collection loadCollectionByQuery(Class entityClass, String query, Object[] params) throws DBException..... a dalsiu triedu LOVManager, a tu mam metodu public CollectiongetAllZipCodes() throws DBException a tu je problem: ak napisem nieco taketo: public CollectiongetAllZipCodes() throws DBException return (Collection) loadCollectionByQuery(ZipCode.class, "select z from ZipCode z", null); } prekladac hlasi warning (unchecked cast...), a ked si vypisem po caste hodnoty v kolekcii, su tam instancie ZipCode, ale hodnoty atributov id a stamp (ktore su v BaseEntity) su null (???) ked naspisem toto: public CollectiongetAllZipCodes() throws DBException Collection tmp = loadCollectionByQuery(ZipCode.class, "select z from ZipCode z", null); Collectionret = (Collection) tmp; return tmp; } prekladac sice tiez hlasi warning, ale instancie ZipCode su uz ok (id aj stamp su != null) Co mi unika?

Odpovedet emailem