Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Vector typsicher clonen
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Günther Frings  
View profile   Translate to Translated (View Original)
 More options Jan 4 2010, 7:15 am
Newsgroups: de.comp.lang.java
From: Günther Frings <pseudotetrade...@web.de>
Date: 4 Jan 2010 12:15:41 GMT
Local: Mon, Jan 4 2010 7:15 am
Subject: Vector typsicher clonen
Hallo,

ich verliere gerade die Nerven und ihr wahrscheinlich die letzten Haare
bei folgender Zeile:

   Vector<A> copyOfListeners = (Vector<A>)listeners.clone();

ich erhalte die Warnung, das das typunsicher ist (unchecked cast). Aber
wie mache ich das denn typsicher? Ich kann ja nicht zuvor eine instanceof-
Abfrage machen und eine Exception wirft die Zeile (zu dem Thema) auch
nicht. Ganz ohne Angabe eines Typs erhalte ich die Meldung, dass ich raw-
Types verwende. Das will ich auch nicht. Grummel, grummel...

Grüße!

P.S.: In drei von drei Büchern, die ich über Java jetzt mehr oder weniger
vollständig gelesen habe finde ich stets die Notation Vector, nicht
Vector<Typ>. Wie kommt es dazu?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Malte Schirmacher  
View profile   Translate to Translated (View Original)
 More options Jan 4 2010, 8:53 am
Newsgroups: de.comp.lang.java
From: Malte Schirmacher <th...@thana.ath.cx>
Date: Mon, 04 Jan 2010 14:53:53 +0100
Local: Mon, Jan 4 2010 8:53 am
Subject: Re: Vector typsicher clonen

Günther Frings wrote:
> Hallo,

> ich verliere gerade die Nerven und ihr wahrscheinlich die letzten Haare
> bei folgender Zeile:

>    Vector<A> copyOfListeners = (Vector<A>)listeners.clone();

Einer der Fälle wo man @SuppreWarnings("unckecked") einsetzen muss.
clone() gibt ja nur ein Object zurück. Und von da aus erzeugt dieser
cast eben eine Warnung.
Umgehen kannt du den ekligen Ansatz mit der Annotation natürlich, wenn
du einfach einen copy-Konatruktor oder addAll verwendest. clone() sollte
man imho eh meiden.

Ein Tipp noch: Vector ist out. ArrayList ist In ;-)

> P.S.: In drei von drei Büchern, die ich über Java jetzt mehr oder weniger
> vollständig gelesen habe finde ich stets die Notation Vector, nicht
> Vector<Typ>. Wie kommt es dazu?

Dass es letztere Schreibweise nicht immer gab

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bernd 'Nexos' Dutkowski  
View profile   Translate to Translated (View Original)
 More options Jan 5 2010, 2:02 am
Newsgroups: de.comp.lang.java
From: Bernd 'Nexos' Dutkowski <be...@dutkowski.net>
Date: Tue, 05 Jan 2010 08:02:27 +0100
Local: Tues, Jan 5 2010 2:02 am
Subject: Re: Vector typsicher clonen
Am 04.01.2010 13:15, schrieb Günther Frings:

Generics aka das zeug mit den Spitzen Klammern gibt es erst ab Java
1.5/5.0. Vector selber ist aus der Mode gekommen, man nutzt
implementierungen von java.util.List wie Arraylist oder LinkedList.

bernd


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wanja Gayk  
View profile   Translate to Translated (View Original)
 More options Jan 7 2010, 1:56 pm
Newsgroups: de.comp.lang.java
From: "Wanja Gayk" <brixoma...@yahoo.com>
Date: Thu, 07 Jan 2010 19:56:04 +0100
Local: Thurs, Jan 7 2010 1:56 pm
Subject: Re: Vector typsicher clonen
Am 04.01.2010, 13:15 Uhr, schrieb Günther Frings <pseudotetrade...@web.de>:

> Hallo,

> ich verliere gerade die Nerven und ihr wahrscheinlich die letzten Haare
> bei folgender Zeile:

>    Vector<A> copyOfListeners = (Vector<A>)listeners.clone();

> ich erhalte die Warnung, das das typunsicher ist (unchecked cast). Aber
> wie mache ich das denn typsicher?

Gar nicht. Die Methode macht keine Zusicherung über den Typen, also kann  
der Cast aus Sicht der Signatur nicht sicher sein.

> P.S.: In drei von drei Büchern, die ich über Java jetzt mehr oder weniger
> vollständig gelesen habe finde ich stets die Notation Vector, nicht
> Vector<Typ>. Wie kommt es dazu?

Die Typangabe (Generics) gibt es erst ab Java 1.5. Die Bücher scheinen aus  
grauer Vorzeit zu stammen, denn auch "Vector" wird in der Regel nicht mehr  
gern benutzt.
ArrayList ist idR die bessere Wahl, weil unsynchronisiert. Und wenn man  
unsynchronisierte Listen synchronisieren will, legt man das per  
Collections.synchronizedList() einen synchronisierten Wrapper drum, das  
Vorgehen ist wesentlich generischer.
Wer kein synchronisierte Liste will, die dennoch threadsicher ist, findet  
man z.B. eine CopyOnWriteArrayList in java.util.concurrent (allerdings mit  
sehr speziellen Laufzeit-Eigenschaften, die es zu beachten gibt).
Siehe dazu auch:  
http://www.ibm.com/developerworks/java/library/j-jtp07233.html

Gruß,
-Wanja-

--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/

--- news://freenews.netfront.net/ - complaints: n...@netfront.net ---


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Wanja Gayk  
View profile   Translate to Translated (View Original)
 More options Jan 7 2010, 1:57 pm
Newsgroups: de.comp.lang.java
From: "Wanja Gayk" <brixoma...@yahoo.com>
Date: Thu, 07 Jan 2010 19:57:22 +0100
Local: Thurs, Jan 7 2010 1:57 pm
Subject: Re: Vector typsicher clonen
Am 04.01.2010, 13:15 Uhr, schrieb Günther Frings <pseudotetrade...@web.de>:

> Hallo,

> ich verliere gerade die Nerven und ihr wahrscheinlich die letzten Haare
> bei folgender Zeile:

>    Vector<A> copyOfListeners = (Vector<A>)listeners.clone();

> ich erhalte die Warnung, das das typunsicher ist (unchecked cast). Aber
> wie mache ich das denn typsicher?

Gar nicht. Die Methode macht keine Zusicherung über den Typen, also kann
der Cast aus Sicht der Signatur nicht sicher sein.
Aber was spricht gegen das hier?
final ArrayList copy = new ArrayList(listeners);

> P.S.: In drei von drei Büchern, die ich über Java jetzt mehr oder weniger
> vollständig gelesen habe finde ich stets die Notation Vector, nicht
> Vector<Typ>. Wie kommt es dazu?

Die Typangabe (Generics) gibt es erst ab Java 1.5. Die Bücher scheinen aus
grauer Vorzeit zu stammen, denn auch "Vector" wird in der Regel nicht mehr
gern benutzt.
ArrayList ist idR die bessere Wahl, weil unsynchronisiert. Und wenn man
unsynchronisierte Listen synchronisieren will, legt man das per
Collections.synchronizedList() einen synchronisierten Wrapper drum, das
Vorgehen ist wesentlich generischer.
Wer kein synchronisierte Liste will, die dennoch threadsicher ist, findet
man z.B. eine CopyOnWriteArrayList in java.util.concurrent (allerdings mit
sehr speziellen Laufzeit-Eigenschaften, die es zu beachten gibt).
Siehe dazu auch:
http://www.ibm.com/developerworks/java/library/j-jtp07233.html

Gruß,
-Wanja-

--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/

--- news://freenews.netfront.net/ - complaints: n...@netfront.net ---


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »