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 Die Funktionsbibliothek
10 Threads und nebenläufige Programmierung
11 Raum und Zeit
12 Datenstrukturen und Algorithmen
13 Dateien und Datenströme
14 Die eXtensible Markup Language (XML)
15 Grafische Oberflächen mit Swing
16 Grafikprogrammierung
17 Netzwerkprogrammierung
18 Verteilte Programmierung mit RMI und Web-Services
19 JavaServer Pages und Servlets
20 Applets
21 Midlets und die Java ME
22 Datenbankmanagement mit JDBC
23 Reflection und Annotationen
24 Logging und Monitoring
25 Sicherheitskonzepte
26 Java Native Interface (JNI)
27 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort

Download:
- ZIP, ca. 12,5 MB
Buch bestellen
Ihre Meinung?

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

Java ist auch eine Insel
7., aktualisierte Auflage
geb., mit DVD (November 2007)
1.492 S., 49,90 Euro
Galileo Computing
ISBN 978-3-8362-1146-8
Pfeil 23 Reflection und Annotationen
Pfeil 23.1 Metadaten
Pfeil 23.1.1 Metadaten durch Java-Doc Tags
Pfeil 23.1.2 XDoclet
Pfeil 23.2 Metadaten der Klassen mit dem Class-Objekt
Pfeil 23.2.1 An ein Class-Objekt kommen
Pfeil 23.2.2 Was das Class-Objekt beschreibt
Pfeil 23.2.3 Der Name der Klasse
Pfeil 23.2.4 instanceof mit Class-Objekten
Pfeil 23.2.5 Oberklassen finden
Pfeil 23.2.6 Implementierte Interfaces einer Klasse oder eines Interfaces
Pfeil 23.2.7 Modifizierer und die Klasse Modifier
Pfeil 23.2.8 Die Arbeit auf dem Feld
Pfeil 23.3 Attribute, Methoden und Konstruktoren
Pfeil 23.3.1 Reflections Gespür für Attribute einer Klasse
Pfeil 23.3.2 Methoden einer Klasse erfragen
Pfeil 23.3.3 Properties einer Bean erfragen
Pfeil 23.3.4 Konstruktoren einer Klasse
Pfeil 23.3.5 Annotationen
Pfeil 23.4 Objekte erzeugen und manipulieren
Pfeil 23.4.1 Objekte erzeugen
Pfeil 23.4.2 Die Belegung der Variablen erfragen
Pfeil 23.4.3 Eine generische toString()-Funktion
Pfeil 23.4.4 Variablen setzen
Pfeil 23.4.5 Private Attribute ändern
Pfeil 23.5 Methoden aufrufen
Pfeil 23.5.1 Statische Methoden aufrufen
Pfeil 23.5.2 Dynamische Methodenaufrufe bei festen Methoden beschleunigen
Pfeil 23.6 Informationen und Identifizierung von Paketen
Pfeil 23.6.1 Geladene Pakete
Pfeil 23.7 Annotationen
Pfeil 23.7.1 Neue Annotationen definieren
Pfeil 23.7.2 Annotationen mit genau einem Element
Pfeil 23.7.3 Beliebige Schlüssel-Werte-Paare
Pfeil 23.7.4 Vorbelegte Elemente
Pfeil 23.7.5 Annotieren von Annotationstypen
Pfeil 23.7.6 Annotationen zur Laufzeit ausgelesen
Pfeil 23.7.7 Mögliche Nachteile von Annotationen

Aber wofür soll das gut sein? – Advanced Computing Systems Division von IBM, 1968, zum Microchip

23 Reflection und Annotationen

Das Reflection-Modell erlaubt es uns, Klassen und Objekte, die zur Laufzeit von der JVM im Speicher gehalten werden, zu untersuchen und in begrenztem Umfang zu modifizieren. Das Konzept der Reflection (oder auch Introspektion) ist besonders bei JavaBeans oder Hilfsprogrammen zum Debuggen oder GUI-Buildern interessant. Diese Programme heißen auch Meta-Programme, da sie auf den Klassen und Objekten anderer Programme operieren. Reflection fällt daher auch in die Schlagwortkategorie »Meta-Programming«.


Galileo Computing - Zum Seitenanfang

23.1 Metadaten Zur nächsten ÜberschriftZur vorigen Überschrift

Ein Metadatum ist eine Information über eine Information. In Java beschreibt ein Class-Objekt, was Klassen »können«, also welche Konstruktoren und Methoden sie haben, welche Attribute sie besitzen und wie die Erweiterungsbeziehungen sind.


Galileo Computing - Zum Seitenanfang

23.1.1 Metadaten durch Java-Doc Tags Zur nächsten ÜberschriftZur vorigen Überschrift

Seit den ersten Java-Versionen gibt es die JavaDoc-Tags, die besondere Metadaten darstellen. So ist im folgenden Beispiel die Methode veraltet, weil das JavaDoc-Tag @deprecated gesetzt ist:

/** 
 * Sets the day of the month of this <tt>Date<tt>object to the specified value. .... 
 * @deprecated As of JDK version 1.1, replaced by .... 
 */ 
@Deprecated 
public void setDate( int date ) { 
  getCalendarDate().setDayOfMonth( date ); 
}

In diesem Fall gilt das JavaDoc-Tag für genau eine Methode, die dann als annotiert gilt. Die Beschreibungen können aber noch weiter gehen und müssen nicht nur auf Methodenebene bleiben. So annotiert das Tag @author den Autor und damit gleich eine ganze Klasse oder Schnittstelle.

Um die in Kommentaren eingesetzten JavaDoc-Tags muss sich der Java-Compiler nicht kümmern, obwohl er @deprecated eine Ausnahme zugesteht. Es ist Aufgabe des externen Programms javadoc – eines so genannten Doclets –, aus diesen Kommentaren etwas zu machen, etwa eine Sammlung von verknüpften HTML-Dokumenten.


Galileo Computing - Zum Seitenanfang

23.1.2 XDoclet topZur vorigen Überschrift

JavaDoc-Tags haben sich in den letzten Jahren als sehr flexibel erwiesen. Zwar belegt Sun einige Tags mit bestimmten Bedeutungen (@see, @autor, ...), doch können Tags in den Dokumentationskommentaren im Prinzip frei gewählt werden. Ein Doclet muss nicht nur HTML generieren, sondern könnte ebenso neue Quellcode- oder XML-Dateien erzeugen oder Tests durchführen, ob Methodennamen gut gewählt sind.

Zu Nutze macht sich das etwa das Programmpaket XDoclet (http://xdoclet.sourceforge.net/). Es generiert aus JavaDoc-Tags Schnittstellen, Hilfsklassen, Deskriptoren und mehr. Häufig anzutreffen ist es bei Enterprise JavaBeans, aber auch bei OR-Mapping oder Servlets. Eine Session-Bean ist nach der Java Enterprise Edition 1.4 in wenigen Zeilen definiert:

import javax.ejb.SessionBean; 
 
/** 
 * @ejb.bean name = "Hallo" 
 *           type = "Stateless" 
 * 
 **/ 
public abstract class HalloBean implements SessionBean 
{ 
  /** 
   * @ejb.interface-method 
   */ 
  public String hallo( String name ) { 
    return "Hallo " + name; 
  } 
}

Ein Ant-Tag nimmt den so annotierten Quellcode und generiert über ein Doclet alle für die Enterprise JavaBeans nötigen Dateien.



Ihr Kommentar

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






<< zurück



Copyright © Galileo Press 2008
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