java泛型

泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法

泛型类

泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口;

如下是自定义泛型类:

//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
//在实例化泛型类时,必须指定T的具体类型
public class ResObject<T> implements Serializable { 
	    
    private String errCode;
		
    private String errDesc;;
		
    //object这个成员变量的类型为T,T的类型由外部指定
    private T object;
	    
    public T getObject() { //泛型方法getKey的返回值类型为T,T的类型由外部指定
	return object;
    }

    public ResObject( @SuppressWarnings("rawtypes") ReqObject req, Exception e ){

    }


public void setObject(T object) { //泛型构造方法形参key的类型也为T,T的类型由外部指定this.object = object;}




泛型类的使用,下面是控制层中的一个例子:

如果有一个Product实体类

public ResObject<Product> create(@RequestBody ReqObject<Product> data) {
		
	try {
		return null;
	} catch (Exception e) {
		return new ResObject<Product>(data, e);
	}
		
}

泛型通配符“?”:

应用场景:在使用泛型类型作为实参引用类型时使用,注意是用做实参!实参!

如下demo

package cn.lz.life.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.lz.cloud.common.service.ReqObject;
import cn.lz.life.model.productmanage.Image;
import cn.lz.life.model.productmanage.Product;

public class Test {
	
	private static final Logger log = LoggerFactory.getLogger(Test.class);
	
	public static void main(String[] args) {
		//实例化一个Image类
		Image image = new Image();
		image.setUuid("123");
		image.setPath("123");
		demo(new ReqObject<Image>(image));
		
		//实例化一个Product类
		Product product = new Product();
		product.setProductCode("123");
		product.setProductName("123");
		demo(new ReqObject<Product>(product));
	}
	
	private static void demo(ReqObject<?> data) {//?做实参泛型占位符
		System.out.println(data.getObject());
	}
	
}


控制台打印:

Image [uuid=123, path=123, MD5Code=null, base64Code=null]
Product [productCode=123, productName=123, productProperty=null, model=null, unit=null, specification=null, type=null, purchasePrice=null, salePrice=null, images=null]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值