栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 自定义泛型类的举例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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.父类有泛型,子类可以选择保留泛型也可以选择自己指定泛型的类型

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693061.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号