[Java] Anmerkung

Anmerkung

@Override

public class Person {
  private String firstName;
  private String lastName;

  public Person(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format("Name ist,%s %s.",
        this.lastName, this.firstName);
  }

  public String getLastName() {
    return this.lastName;
  }

  public String getFirstName() {
    return this.firstName;
  }
}

@WebServlet

Annotationspunkt

Standardanmerkung

@Deprecated

Integer.java


/**
 *Unterlassung
 * @deprecated
 * It is rarely appropriate to use this constructor. The static factory
 * {@link #valueOf(int)} is generally a better choice, as it is
 * likely to yield significantly better space and time performance.
 */

@Deprecated(since="9")
public Integer(int value) {
    this.value = value;
}

@SuppressWarnings

public class AnnotationBasic {

  public static Integer process() {
   @SuppressWarnings("deprecation")
    var i = new Integer(108);
   return i;
  }

  public static void main(String[] args) {
    System.out.println(process());
  }
}

@SafeVarargs

Selbstgemachte Anmerkung

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//Deklaration der Konfigurationsinformationen
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
//@Anmerkungsdefinition mit Schnittstellenbefehl
public @interface ClassInfo {
  //Deklarieren Sie Attribute, die in Anmerkungen verwendet werden können
  String value() default "";
  String version() default "";
  String description() default "";
}

Verwenden Sie Anmerkungen zur Reflexion

package mypackage;

//ClassInfo-Anmerkungsspezifikation
@ClassInfo(version = "2.1", description = "Annotation Operationstest")
// @ClassInfo("2.1")
public class AnnotationClient {
  public static void main(String[] args) throws ClassNotFoundException {
    //Holen Sie sich untergeordnete Mitglieder über das Klassenobjekt
    var clazz = Class.forName("mypackage.AnnotationClient");
    //Abrufen von Anmerkungen, die der Klasse mit der Methode getAnnotation zugewiesen wurden
    var info = (ClassInfo)
 clazz.getAnnotation(ClassInfo.class);
    System.out.println("Ausführung:" +
        (info.value().equals("") ? info.version() : info.value()));
    System.out.println("Erläuterung:" + info.description());
  }
}

Reflexionsmethode

Objekterstellung

import java.io.File;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;

public class ReflectInstance {

  public static void main(String[] args) {
    try {
      //Dateiklasse abrufen
      var clazz = File.class;

      //Dateiobjekt über Konstruktor erstellen
      var c = clazz.getConstructor(String.class);
      var fl = c.newInstance("./data/data.txt");
      System.out.println(fl);

      //Array-Generierung der Größe 2
      var list = (File[]) Array.newInstance(File.class, 2);
      Array.set(list, 0, fl);
      System.out.println(Arrays.toString(list));
    } catch (InstantiationException | IllegalAccessException |
        IllegalArgumentException | InvocationTargetException
        | NoSuchMethodException | SecurityException e) {
      e.printStackTrace();
    }
  }
}

Holen Sie sich alle Methoden

import java.io.File;

public class ReflectMethods {

  public static void main(String[] args) {
    //Dateiklasse abrufen
    var str = File.class;
    //Listen Sie die öffentlichen Methoden unter der File-Klasse mit getName auf
    for (var m : str.getMethods()) {
      System.out.println(m.getName());
    }
  }
}

Methodenausführung

import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectInvoke {

  public static void main(String[] args) {
    try {
      //Dateiklasse abrufen
      var clazz = File.class;
      //Dateiobjekterstellung
      var f1 = clazz.getConstructor(String.class).newInstance("./data/data.txt");
      var f2 = clazz.getConstructor(String.class).newInstance("./data/sample.txt");
      //Ruft die Methode renameTo ab und führt sie aus
      Method m = clazz.getMethod("renameTo", File.class);
      System.out.println(m.invoke(f1, f2));
    } catch (NoSuchMethodException | SecurityException |
        InstantiationException | IllegalAccessException
        | IllegalArgumentException | InvocationTargetException e) {
      e.printStackTrace();
    }
  }
}

Felderfassung, Einstellung

//Feld Nachname der Personenklasse abrufen

import java.lang.reflect.InvocationTargetException;
import example.Person;

public class ReflectField {

  public static void main(String[] args) {
    try {
      var clazz = Person.class;
      var con = clazz.getConstructor(String.class, String.class);
      var p = con.newInstance("Taro", "Yamada");
      //Feldakquisition
      var last = clazz.getDeclaredField("lastName");
      //Ermöglichen Sie explizit den Zugriff auf private Felder
      last.setAccessible(true);
      //get/Feldwert mit set-Methode abrufen/Aufbau
      last.set(p, "Suzuki");
      System.out.println(last.get(p)); //Suzuki
    } catch (NoSuchMethodException | SecurityException |
        InstantiationException | IllegalAccessException
        | IllegalArgumentException | InvocationTargetException |
        NoSuchFieldException e) {
      e.printStackTrace();
    }
  }
}

package example;
public class Person {
  private String firstName;
  private String lastName;
  public Person(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }
  @Override
  public String toString() {
    return String.format("Name ist,%s %s.",
        this.lastName, this.firstName);
  }
  public String getLastName() {
    return this.lastName;
  }
  public String getFirstName() {
    return this.firstName;
  }
}

Recommended Posts

[Java] Anmerkung
[Java] Anmerkung
Geschichte der Java-Annotationen
Java
Java
[Java] Erstellen von Originalanmerkungen
Java lernen (0)
[Java] -Array
Java geschützt
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java (Konstruktor)
Java-Array
[Java] ArrayDeque
Java (überschreiben)
Java (Methode)
Java Day 2018
Java-Zeichenfolge
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java (gesetzt)
Java-Shell-Sortierung
[Java] compareTo
Java studieren -5
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Memorandum
Java-Array
Java studieren ―― 1
[Java] Array
[Java] Polymorphismus
Lesen Sie CSV in Java (Super CSV Annotation)
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
[Java] Vererbung
FastScanner Java
Java-Funktionen
Java Anfänger 3
Java-Memo
Java (Kapselung)
Java-Vererbung
[Java] Überladung
Java-Grundlagen
Java dekompilieren
Java Note
Java Anfänger
Java (add2)
JAVA (Karte)
[Java] -Schnittstelle