Java学习

Java学习,第1张

P568 泛型与File-自定义泛型类举例
package com.generic;

public class SubOrder1<T> extends Order<T>{

}
package com.generic;

public class SubOrder extends Order<Integer>{
}
package com.generic;

/**
 * 自定义泛型类
 * @param 
 */
public class Order<T> {
    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<String> order = new Order<>("orderAA",123,"AA");
        order.setOrderT("AA:Hello");
    }

    @Test
    public void test2(){
        SubOrder sub1 = new SubOrder();
        // 由于子类在继承带泛型的父类时,指明了泛型类型。则实例化子类对象时,不再需要指明泛型。
//        sub1.setOrderT();
    }
}
P569 泛型与File-自定义泛型类泛型接口的注意点
    @Test
    public void test3(){
        ArrayList<String> list1 = null;
        ArrayList<Integer> list2 = null;
//        list1 = list2;
    }

    // 静态方法中不能使用类的泛型
    // 异常类不能声明为泛型类
P570 泛型与File-自定义泛型方法举例
    // 泛型方法可声明为静态的
    @Test
    public void test4(){
        Order<String> order = new Order<>();
        Integer[] arr = new Integer[]{1, 2, 3, 4};
        // 泛型方法的调用
        List<Integer> list = order.copyFromArrayTolist(arr);
    }
    // 泛型方法,在方法中出现了泛型结构,泛型参数与类的泛型参数没有任何关系
    public <E> List<E> copyFromArrayTolist(E[] arr){
        ArrayList<E> 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<Object> list1 = null;
        List<String> list2 = null;
        // 没有子父类关系
//        list1 = list2;
    }
    /*
    虽然类A是类B的父类,但是G和G二者不具备子父类关系,二者是并列关系
    补充:虽然类A是类B的父类,A是B的父类
     */
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/924203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存