package com.generic;
public class SubOrder1 extends Order{
}
package com.generic;
public class SubOrder extends Order{
}
package com.generic;
public class Order {
String orderName;
int orderId;
// 类的内部结构就可以使用类的泛型
T orderT;
public Order(){};
public Order(String orderName, int orderId, T orderT) {
this.orderName = orderName;
this.orderId = orderId;
this.orderT = orderT;
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public T getOrderT() {
return orderT;
}
public void setOrderT(T orderT) {
this.orderT = orderT;
}
}
package com.generic;
import org.junit.Test;
public class GenericTest1 {
@Test
public void test1(){
// 如果定义了泛型,但实例化没有指明类型,那此泛型类型为Object类型(不建议)
Order order = new Order<>("orderAA",123,"AA");
order.setOrderT("AA:Hello");
}
@Test
public void test2(){
SubOrder sub1 = new SubOrder();
// 由于子类在继承带泛型的父类时,指明了泛型类型。则实例化子类对象时,不再需要指明泛型。
// sub1.setOrderT();
}
}
// 泛型方法可声明为静态的
@Test
public void test4(){
Order order = new Order<>();
Integer[] arr = new Integer[]{1, 2, 3, 4};
// 泛型方法的调用
List list = order.copyFromArrayTolist(arr);
}
// 泛型方法,在方法中出现了泛型结构,泛型参数与类的泛型参数没有任何关系
public List copyFromArrayTolist(E[] arr){
ArrayList list = new ArrayList<>();
for (E e : arr) {
list.add(e);
}
return list;
}
P571 泛型与File-举例泛型类和泛型方法的使用情景
// 操作数据库场景
P572 泛型与File-泛型在继承方面的体现
package com.generic;
import org.junit.Test;
import java.util.List;
public class GenericTest2 {
@Test
public void test1(){
Object obj = null;
String str = null;
obj = str;
Object[] arr1 = null;
String[] arr2 = null;
arr1 = arr2;
List