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?
<< zurück | Galileo Computing / <openbook> /Java-Insel | vor >>
Java ist auch eine Insel von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
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 |
| 23 Reflection und Annotationen
|  | 23.1 Metadaten
|  |  | 23.1.1 Metadaten durch Java-Doc Tags
|  |  | 23.1.2 XDoclet
|  | 23.2 Metadaten der Klassen mit dem Class-Objekt
|  |  | 23.2.1 An ein Class-Objekt kommen
|  |  | 23.2.2 Was das Class-Objekt beschreibt
|  |  | 23.2.3 Der Name der Klasse
|  |  | 23.2.4 instanceof mit Class-Objekten
|  |  | 23.2.5 Oberklassen finden
|  |  | 23.2.6 Implementierte Interfaces einer Klasse oder eines Interfaces
|  |  | 23.2.7 Modifizierer und die Klasse Modifier
|  |  | 23.2.8 Die Arbeit auf dem Feld
|  | 23.3 Attribute, Methoden und Konstruktoren
|  |  | 23.3.1 Reflections Gespür für Attribute einer Klasse
|  |  | 23.3.2 Methoden einer Klasse erfragen
|  |  | 23.3.3 Properties einer Bean erfragen
|  |  | 23.3.4 Konstruktoren einer Klasse
|  |  | 23.3.5 Annotationen
|  | 23.4 Objekte erzeugen und manipulieren
|  |  | 23.4.1 Objekte erzeugen
|  |  | 23.4.2 Die Belegung der Variablen erfragen
|  |  | 23.4.3 Eine generische toString()-Funktion
|  |  | 23.4.4 Variablen setzen
|  |  | 23.4.5 Private Attribute ändern
|  | 23.5 Methoden aufrufen
|  |  | 23.5.1 Statische Methoden aufrufen
|  |  | 23.5.2 Dynamische Methodenaufrufe bei festen Methoden beschleunigen
|  | 23.6 Informationen und Identifizierung von Paketen
|  |  | 23.6.1 Geladene Pakete
|  | 23.7 Annotationen
|  |  | 23.7.1 Neue Annotationen definieren
|  |  | 23.7.2 Annotationen mit genau einem Element
|  |  | 23.7.3 Beliebige Schlüssel-Werte-Paare
|  |  | 23.7.4 Vorbelegte Elemente
|  |  | 23.7.5 Annotieren von Annotationstypen
|  |  | 23.7.6 Annotationen zur Laufzeit ausgelesen
|  |  | 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«. ## 23.1 Metadaten 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. ### 23.1.1 Metadaten durch Java-Doc Tags 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. ### 23.1.2 XDoclet 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.
Name |
E-Mail |
Ihr Kommentar |
<< zurück | <top> | vor >>

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