泛型

/**

 *

 * 泛型的好处:

 *        1.把运行时出现的问题提前至编译时

 *        2.避免了无谓的强制类型转换。

 *                

 * 泛型在集合中的应用正确的:

 * ArrayList<String> list=newArrayList<String>();

 * ArrayList<object> list=new ArrayList<String>(); false

 * ArrayList<String> list=new ArrayList<object>(); false

 * 

 *  考虑新老系统的兼容性。

 * ArrayList<String> list=new ArrayList();

 * ArrayList list=new ArrayList<String>();

 *

 *

 *注意:

 *        泛型中没有多态的概念,两边的数据必须一致。或者致谢一边的类型。

 *推荐使用:两边的数据类一致。

 */

 

 

 

 

/*

 * 自定义泛型:自定义泛型可以理解为一个数据类型的占位符,或者可以理解为是一个数据类型的变量。

 *

 * 泛型方法:

 *

 *        泛型方法的定义格式:

 *                        修饰符:<声明自定义泛型>返回值类型,函数名(形参列表。。){

 *

 *                                }

 *

 * 1.在方法上自定义泛型的具体数据类型是调用该方法的时候传入实参的确定的。

 * 2.自定义泛型使用的标示符只要符合表示的命名规则即可。

 *

 * 需求:定义一个函数可以接受任意类型的参数,要求函数的返回值类型与实参的数据类要求一致。

 *        

 *

 */

public class demo2 {

 

publicstatic void main(String[] args) {

 

inti=print(12);

Stringstr=print("sdfsd");

}

 

// <T>T字符声明为自定义的泛型。

publicstatic <T> T print(T o) {

 

returno;

}

 

}

 

 

 

/*

 * 自定义泛型类定义格式:

 *

 * class 类名<声明自定义的泛型>{

 *        

 *

 * }

 *

 * 注意的事项:

 *        1.在类上自定义的泛型的具体数据类型是在创建具体类型时指定的。

 *        2.在类上自定义了泛型,如果创建该类的对象时没有指定具体类型,那么默认为object类型。

 *

 *自定义一个集合对象

 *

 */

 

 

classmyList<T>{

 

 Object[] arr=new Object[10];

 

intindex=0;

 

publicmyList(){

 

}

 

publicvoid add(T o){

 

arr[index++]=o;

 

}

 

}

 

public class demo3 {

 

publicstatic void main(String[] args){

 

myList<String>list=new myList<String>();

list.add("123");

 

myListlist2=new myList();

list2.add(123);

}

}

 

 

 

/*

 * 泛型接口:

 *

 * 泛型接口的定义格式:

 *

 * interface 接口<声明自定义泛型>{

 *

 * }

 *

 * 自定义泛型接口注意事项:

 *        1.在接口自定义泛型具体的数据类型是在实现时指定的。

 *  2.不指定类型,默认为Object类型。

 *

 * 如果想在创建接口实现类对象的时候在指定接口自定义泛型的具体数据类型?

 *

 *

 *

 */

 

interfaceDao<T>{

 

publicvoid add(T t);

 

publicvoid remove(T t);

 

}

 

 

 

public classdemo4<T> implements Dao<T> {

 

 

publicstatic void main(String[] args){

 

newdemo4<String>();

 

}

 

@Override

publicvoid add(T t) {

//TODO Auto-generated method stub

 

}

 

@Override

publicvoid remove(T t) {

//TODO Auto-generated method stub

 

}

 

}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值