Qt學習筆記Day01:Qt入門
阿新 • • 發佈:2020-12-22
1.泛型類
格式:在類名後面緊跟 <T>
// 泛型類,在類名後面緊跟<T>
public class Tool<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
public class Test {
public static void main(String[] args) {
// 把String型別傳進去
Tool<String> dog = new Tool <>();
dog.setT("狗");
System.out.println(dog.getT());
// 把Integer型別的資料傳進去
// int到Integer是一個裝箱過程
Tool<Integer> number = new Tool<>();
number.setT(18);
// Integer到int是一個自動拆箱過程
int n = number.getT();
System.out.println(n);
}
}
Run:
2.泛型方法
格式:在方法的返回值前面面宣告泛型,方法裡面有多個引數,可在尖括號裡面加任意個<T t, E e>
public class Tool {
public <T,E> void show(T t, E e) {
System.out.println(t);
System.out.println(e);
}
}
public class Test {
public static void main(String[] args) {
// 傳入Integer型別個String型別
Tool tool = new Tool();
tool.show(1, "張三");
// 傳入2個String型別
System.out.println ();
tool.show("我", "Java");
}
}
Run:
3.泛型萬用字元
import java.util.Arrays;
import java.util.List;
//泛型萬用字元
public class Test {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<String> list2 = Arrays.asList("1", "2", "5");
print(list);
// print(list2); // 編譯出錯
print2(list);
print2(list2);
print3(list);
print3(list2);
}
// 用於對比
public static void print(List<Integer> ls) {
for (int i = 0; i < ls.size(); i++) {
System.out.print(ls.get(i) + " ");
}
System.out.println();
}
// 寫法1
public static void print2(List<?> ls) {
for (int i = 0; i < ls.size(); i++) {
System.out.print(ls.get(i) + " ");
}
System.out.println();
}
// 寫法2
public static void print3(List<?> ls) {
// 注意這裡的Object object
for (Object object : ls) {
System.out.print(object + " ");
}
System.out.println();
}
}
Run:
注:本文是個人學習Java過程中的一些理解與心得,以理解為主,口頭語言描述的可能不很恰當以及知識點不太全面,但如有錯誤,請大家批評指正,互相學習。