Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort

Download:
- ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel (8. Auflage)

Java ist auch eine Insel (8. Aufl.)
8., aktual. Auflage, geb., mit DVD
1.475 S., 49,90 Euro
Galileo Computing
ISBN 978-3-8362-1371-4
Pfeil 10 Die Klassenbibliothek
Pfeil 10.1 Die Java-Klassenphilosophie
Pfeil 10.1.1 Übersicht über die Pakete der Standardbibliothek
Pfeil 10.2 Object ist die Mutter aller Klassen
Pfeil 10.2.1 Klassenobjekte
Pfeil 10.2.2 Objektidentifikation mit toString()
Pfeil 10.2.3 Objektgleichheit mit equals() und Identität
Pfeil 10.2.4 Klonen eines Objekts mit clone()
Pfeil 10.2.5 Hashcodes über hashCode() liefern
Pfeil 10.2.6 Aufräumen mit finalize()
Pfeil 10.2.7 Synchronisation
Pfeil 10.3 Die Spezial-Oberklasse Enum
Pfeil 10.3.1 Methoden auf Enum-Objekten
Pfeil 10.3.2 enum mit eigenen Konstruktoren und Methoden
Pfeil 10.4 Klassenlader (Class Loader)
Pfeil 10.4.1 Woher die kleinen Klassen kommen
Pfeil 10.4.2 Setzen des Klassenpfades
Pfeil 10.4.3 Die wichtigsten drei Typen von Klassenladern
Pfeil 10.4.4 Der java.lang.ClassLoader
Pfeil 10.4.5 Hot Deployment mit dem URL-Classloader
Pfeil 10.4.6 Das jre/lib/endorsed-Verzeichnis
Pfeil 10.5 Die Utility-Klasse System und Properties
Pfeil 10.5.1 Systemeigenschaften der Java-Umgebung
Pfeil 10.5.2 line.separator
Pfeil 10.5.3 Property von der Konsole aus setzen
Pfeil 10.5.4 Umgebungsvariablen des Betriebssystems
Pfeil 10.5.5 Einfache Zeitmessung und Profiling
Pfeil 10.6 Ausführen externer Programme und Skripte
Pfeil 10.6.1 ProcessBuilder und Prozesskontrolle mit Process
Pfeil 10.6.2 Einen Browser/E-Mail-Client/Editor aufrufen
Pfeil 10.6.3 Ausführen von Skripten
Pfeil 10.7 Benutzereinstellungen
Pfeil 10.7.1 Benutzereinstellungen speichern
Pfeil 10.7.2 Einträge einfügen, auslesen und löschen
Pfeil 10.7.3 Auslesen der Daten und Schreiben in anderem Format
Pfeil 10.7.4 Auf Ereignisse horchen
Pfeil 10.7.5 Zugriff auf die gesamte Windows-Registry
Pfeil 10.8 Musik abspielen
Pfeil 10.8.1 Die Arbeit mit AudioClip
Pfeil 10.8.2 Java Sound API
Pfeil 10.9 Annotationen
Pfeil 10.9.1 Annotationstypen @Override, @Deprecated, @SuppressWarnings
Pfeil 10.9.2 Annotationen für Web-Services
Pfeil 10.10 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

10.9 Annotationen Zur nächsten ÜberschriftZur vorigen Überschrift

Seit Java 5 gibt es eine in die Programmiersprache eingebaute Fähigkeit für Metadaten: Annotationen. Das folgende Beispiel zeigt einen denkbaren Einsatz für Web-Services.

import javax.jws.WebService; 
import javax.jws.WebMethod; 
 
@WebService 
public class Calculator 
{ 
  @WebMethod 
  public int add( int x, int y ) 
  { 
    return x + y; 
  } 
}

Die Annotationen sind Auszeichnungen der Metadaten und beginnen mit einem @-Zeichen, wie auch die JavaDoc-Tags mit einem solchen Zeichen beginnen. (Das @-Zeichen, AT, ist auch eine gute Abkürzung für Annotation Type.) Hinter dem @ steht ein Bezeichner, der im Allgemeinen ein Wie-Wort (für die Linguisten: Adjektiv) sein sollte.


Galileo Computing - Zum Seitenanfang

10.9.1 Annotationstypen @Override, @Deprecated, @SuppressWarnings Zur nächsten ÜberschriftZur vorigen Überschrift

Oft haben wir schon Anwendungen vom Annotationstyp @Override gesehen. Daneben gibt es im Paket java.lang zwei weitere Annotationstypen. Zusammengefasst ergeben sich:


Tabelle 10.4 Annotationen aus dem Paket java.lang

@Override

Die annotierte Methode überschreibt eine Methode aus der Oberklasse oder implementiert eine Methode einer Schnittstelle.

@Deprecated

Das markierte Element ist veraltet und sollte nicht mehr verwendet werden.

@SuppressWarnings

Unterdrückt bestimmte Compiler-Warnungen.


Die drei Annotationen haben vom Compiler beziehungsweise Laufzeitsystem eine besondere Semantik. Einige weitere Annotationen, die nur für eigene Annotationstypen gedacht sind, beleuchtet Kapitel 24, »Reflection und Annotationen«, näher.

Begriffe Annotation und Annotationstyp

Die Annotationstypen sind die Deklarationen wie etwa ein Klassentyp. Werden sie an ein Element gehängt, ist es eine konkrete Annotation. Während also Override selbst der Annotationstyp ist, ist @Override vor toString() die konkrete Annotation.

@Deprecated

Die Annotation @Deprecated übernimmt die gleiche Aufgabe wie das JavaDoc-Tag @deprecated. Ein Unterschied bleibt: Das JavaDoc-Tag kann nur von JavaDoc (beziehungsweise einem anderen Doclet) ausgewertet werden, während Annotationen auch andere Tools selbst zur Laufzeit auswerten können.

@Deprecated 
public void fubar() { ... }

Falls ein Programmstück die @Deprecated-Methode fubar() [Im US-Militär-Slang steht das für: »Fucked up beyond any recognition«.] nutzt, gibt der Compiler eine einfache Meldung aus. Die Übersetzung mit dem Schalter -Xlint:deprecation liefert die genauen Warnungen; im Moment ist das mit -deprecation gleich.

Annotationen mit zusätzlichen Informationen

Die Annotationen @Override und @Deprecated gehören zur Klasse der Marker-Annotationen, weil keine zusätzlichen Angaben nötig (und erlaubt) sind. Zusätzlich gibt es die »Single-Value Annotation«, die genau eine zusätzliche Information bekommt, und eine volle Annotation mit beliebigen Schlüssel-/Werte-Paaren.


@Annotationstyp

Marker-Annotation

@Annotationstyp( Wert )

Annotation mit genau einem Wert

@Annotationstyp( Schlüssel1=Wert1, Schlüssel2=Wert2, ... )

volle Annotation mit Schlüssel-/Werte-Paaren


@SuppressWarnings

Die Annotation @SuppressWarnings steuert Compiler-Warnungen. Unterschiedliche Werte bestimmen genauer, welche Hinweise unterdrückt werden. Beliebt ist die Annotation bei der Umstellung von älterem Quellcode mit nicht-typisierten Datenstrukturen, um die Anzahl der Warnungen zu minimieren. Da sich mit Java 5.0 das Klassenformat änderte, gibt der Compiler beim Übersetzen älterer Klassen schnell eine »unchecked«-Meldung aus.


Beispiel Der Compiler soll für die ungenerisch verwendete Liste keine Meldung geben:

Listing 10.35 com/tutego/insel/annotation/SuppressWarningsDemo.java, main()

@SuppressWarnings( "unchecked" ) public static void main( String[] args ) {

  ArrayList list = new ArrayList(); 
  list.add( "SuppressWarnings" ); 
}

Die Annotation der lokalen Variable funktioniert nicht!


@SuppressWarnings("unchecked") ist eine Abkürzung von @SuppressWarnings(value= {"unchecked"});. Die zweite Schreibweise macht deutlich, dass ein Feld von Strings übergeben werden kann.


Galileo Computing - Zum Seitenanfang

10.9.2 Annotationen für Web-Services topZur vorigen Überschrift

Unser erstes Beispiel für Annotationen zeigt ihren Einsatz zur Definition von Web-Services. Die Annotationen wurden erstmalig im JSR 181, »Web Services Metadata for the Java Platform«, definiert und sind nun Teil von Mustang. Kapitel 19, »Verteilte Programmierung mit RMI und Web-Services«, beschäftigt sich etwas ausführlicher mit den Annotationen unter dem Paket javax.jws. Des Weiteren sind Annotationen aus einem zweiten JSR 224 eingezogen, der den Titel »Java API for XML-Based Web Services (JAX-WS) 2.0« trägt. Die Annotationen sowie Klassen und Schnittstellen teilen sich das Paket javax.xml.ws.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Tipp
Zum Katalog: Coding for Fun





 Coding for Fun


 Buchempfehlungen
Zum Katalog: Objektorientierte Programmierung





 Objektorientierte
 Programmierung


Zum Katalog: Einstieg in Eclipse 3.4






 Einstieg in
 Eclipse 3.4


Zum Katalog: Java 6 lernen mit Eclipse






 Java 6 lernen
 mit Eclipse


Zum Katalog: NetBeans Platform 6






 NetBeans
 Platform 6


Zum Katalog: Java und XML






 Java und XML


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de