Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Warnungen los werden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.01.2006, 08:55 Uhr
virtual
Sexiest Bit alive
(Operator)


Hallo,

folgendes Problem: Ich habe einen Generic "Range" geschrieben (einfach ein Paar von zwei Comparable, welches einen Bereich darstellt):

Code:
public class Range<T extends Comparable<T>> {
...
}


Nun kann man zB bei Range auf Integer-Basis auf die Idee kommen, verschiedene Formate zu definieren. Daher habe ich auch gleich java.text.Format spezialisiert:

Code:
public class RangeFormat extends Format {

....
    public Object parseObject(String source) {
       ....
    }
}


Soweit so gut. Aber wenn ich nun folgendes machen will:

Code:
RangeFormat format = new RangeFormat(...);
Range<Integer> range = format.parseObject("1-4");



Dann muß da ja irgendwie was gecastet werden, also zB

Code:
Range<Integer> range = (Range<Integer>)format.parseObject("1-4");


Das geht zwar, aber nicht frei von Warnungen. Man kann die Warnung zwar mit einer entsprechenden Annotation unterdrücken, aber wie macht man das denn nun richtig? - Denn Warnungen unterdrücken mache ich nun wirklich nicht gerne.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.01.2006, 10:11 Uhr
(un)wissender
Niveauwart


Guter Artikel dazu:
www.angelikalanger.com/Articles/JavaMagazin/Generics/GenericsPart2.html

Kurz gefasst, das Problem liegt darin, dass Generics nur syntaktischer Zucker sind. Nach der Übersetzung in Byte Code sind die generischen Typinformationen verloren. Darum sind cast mit <> immer unchecked. Kann man nicht umgehen, sondern nur unterdrücken. Die Kunst besteht darin zu erkennen, wann die Warnungen berechtigt sind und wann nicht.
Großes Problem meiner Meinung nach, da haben sich die Java-Leute nicht mit Ruhm bekleckert.
Instance of mit <> geht aus dem obigen Grund auch nicht...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.01.2006, 10:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Danke,
schade, weil ich finde das recht unbefriedigend und dachte, ich mache was falsch. Dem scheint aber nicht so zu sein.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: