Java 自定义泛型类的举例

Java 自定义泛型类的举例,第1张

Java 自定义泛型类的举例 一.下面我们首先写出一个泛型类
package genericity;


public class Order {

    String ordername;
    int orderID;

    //类内部就可以直接使用类的泛型
    T orderT;

    public Order(){

    }
    public Order(String ordername,int orderID,T orderT){

        this.orderID=orderID;
        this.ordername=ordername;
        this.orderT=orderT;
    }


}
  • 这里我们声明了一个T类型的orderT,以后我们使用的时候就可以定义为想要的类型

二.接下来我们进行自定义泛型类的实例化
package genericity;
​
public class OrderTest {
​
    public static void main(String[] args) {
​
        Order order = new Order();
​
        Order order1 = new Order<>("AA",100,"BB");
             order1.setOrderT("String");
    }
}
  • 如果我们定义了泛型类,在实例化的时候未指明类的泛型,则默认为Object类型,但我们并不建议这样做,因为这样做就失去了使用泛型的意义.因此在进行自定义泛型类的实例化时必须要指明泛型类的类型

  • 在上面的代码中我们指明了自定义的类型为String型,所以以后我们使用时都为String型的

三.自定义泛型类的继承
  • 子类继承父类时未指明泛型类型,则子类不是泛型类

    public class Son extends Father{
         //此时Son不是泛型类
    }

  • 当子类继承父类时指明了泛型类型,则子类也为泛型类,且实例化子类对象时,不需再指明

    public class Son extends Father{
         //此时Son是泛型类
    }
四. 使用自定义泛型类时的注意点

1.当子类继承父类时指明了泛型类,则实例化子类对象时,不需再次声明

2.泛型类可能有多个参数,此时应该将它们放在一起

  • 如:

3.泛型类的构造参数无<>

正确示例:
 public Textclass(){
 
 } 
错误示例:
 public Textclass(){
 
 }

4.实例化以后, *** 作原来泛型位置的结构必须与指定的泛型类型一致

5.泛型不同的引用不能互相赋值

6.泛型如果不指定,将被擦除,泛型对应的类型均按照Object处理,但不等价于Object

  • 经验:

     要使用泛型就一直使用,要不适用就一直不要使用

7.如果泛型类是一个接口或者一个抽象类,则不可创建泛型类的对象

8.泛型的指定中不能使用基本数据类型,如果需要使用,则使用基本数据类型的包装类替代

9.在类/接口上声明的泛型,在本类或者本接口中即代表某种类型,可以作为非静态属性的类型,非静态方法的参数类型,非静态方法的返回值类型.但在静态方法中不能使用类的泛型

10.异常类不能是泛型的

11.父类有泛型,子类可以选择保留泛型也可以选择自己指定泛型的类型

 

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

原文地址: http://outofmemory.cn/zaji/5693531.html

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

发表评论

登录后才能评论

评论列表(0条)

保存