Ich habe es geschafft, die Generika zu verwenden, mit denen ich in Listen und Karten vertraut bin, aber ich werde ein paar Dinge beachten, da es vage sein kann, wenn ich Generika für meine eigenen Klassen verwende.
Generics.java
package generics;
import java.util.ArrayList;
import java.util.List;
public class Generics {
public static void main(String[] args) {
Bean<String> beanForStr1 = new Bean<String>();
beanForStr1.setValue("String");
System.out.println(beanForStr1.getValue());
Bean<Integer> beanForInt1 = new Bean<Integer>();
beanForInt1.setValue(1000);
System.out.println(beanForInt1.getValue());
ExpandBean<Integer> beanForInt2 = new ExpandBean<Integer>();
beanForInt2.setValue(1000);
System.out.println(beanForInt2.getValue());
System.out.println(getAnyBean(beanForStr1).get(0).getValue());
System.out.println(getAnyBean(beanForInt1).get(0).getValue());
System.out.println(getAnyBean(beanForInt2).get(0).getValue());
}
/**
*Generische Methode
*/
public static <T> List<T> getAnyBean(T args){
List<T> list = new ArrayList<T>();
list.add(args);
return list;
}
}
Bean.java
/**
*Generika Klasse
*/
public class Bean<T> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
ExpandBean.java
package generics;
/**
*Generika Klasse
*Sie können beispielsweise "eine Klasse, die die Number-Klasse erbt" angeben (einschränken).
*/
public class ExpandBean<T extends Number> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
Es ist nützlich, sich daran zu erinnern, den grundlegenden Teil zu erstellen und gemeinsame Prozesse zu organisieren. Die Generika-Klasse ist krank, aber der Punkt, an dem die Generika kurz vor der Angabe des Rückgabewerts der Generika-Methode geschrieben werden, ist nicht krank.
Wir sehen uns wieder (^_^) Noshi
Recommended Posts