泛型-通配符和可变参数

一、通配符

1.上限:

关键词:<?extend 上限类名> :表示此类及其子类

  范例:List<?extend Number> = new ArrayList<Integer>()

2.下限:

关键词:<?super 上限类名> :表示此类及其父类

范例:List<?super Number> = new ArrayList<Object>()

二、可变参数

1.使用情景:

例如:想用一个方法,求两个数,三个数,多个数的和。

public int sum(a,b)

public int sum(a,b,c)

public int sum(a,b,c,d)

原来我们会用方法重载的方式去一个一个写这些参数,但是参数多了之后,我们还去一个一个写就过于麻烦。

2.解决(使用可变参数)方法:

修饰符 返回值 方法名(形参类型... 形参名)

形参名表示将参数封装成一个数组,我们可以通过增强for循环此数组,返回sum的值。

示例:

public int sun(int... a){

int sum=0;

for(int i : a){

sum+=i;

}

return sum;

}

3.注意事项:

如果可变参数方法中含有不可变参数,一定要加到可变参数之前。

正确示例:

 public int sum(int b,int... a)

错误示例:

 public int sum(int... a,int b)

想要更加熟练一点,可以看API文档中的Arrays的asList方法,List 中of方法和 Set 的of方法的使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值