通配符的基础知识

通配符

1.使用通配符的目的:可以接收所有的泛型类型,但是又不能够让用户随意修改。这种情况就需要使用通配符"?"来处理。

注意:
a.通配符主要用在方法的参数类型上。
b.用“?”–来表示通配符,可以接受任意类型参数的类型。
c.此时使用通配符"?"描述的是它可以接收任意类型,但是由于不确 型,所 以无法修改对象的属性值。

2.通配符的基本使用:

public class TestDemo { 
public static void main(String[] args) {
 Message<Integer> message = new Message() ; 
 message.setMessage(55);
  fun(message);
}
   // 此时使用通配符"?"描述的是它可以接收任意类型,但是由于不确定类型,所以无法修改
    public static void fun(Message<?> temp){ 
    //temp.setMessage(100); 无法修改!
     System.out.println(temp.getMessage());
      }
 }

3.上限设置:—可以用在泛型类中也可以中在通配符中。
a.设置上限的形式:
泛型类中设置上限: T extends 类名
通配符设置上限: ?extends 类名

class Message<T extends Number> { 
// 设置泛型上限
 private T message ; 
 public T getMessage() {
  return message; 
  }
  public void setMessage(T message) {
   this.message = message; }
    }
    public class TestDemo { public static void main(String[] args) {
     Message<Integer> message = new Message() ; 
     message.setMessage(55); 
     fun(message);
      }
      // 此时使用通配符"?"描述的是它可以接收任意类型,但是由于不确定类型,所以无法修改  public static void fun(Message<? extends Number> temp){
       //temp.setMessage(100); 仍然无法修改! 
       System.out.println(temp.getMessage()); 
       }
     }

b.设置上限的作用:
在这里插入图片描述
eg:? extends Number,表示只能够设置Number或其子类,例如:Integer,Double等;

4.下限设置:不可以用在泛型类中来设置下限,可以用在通配符中。
a.设置下限的形式
通配符设置下限: ?extends 类

public static void fun(Message<? super String> temp){
// 此时可以修改!! **但是主要修改的数据类型为String类或者子类类型**
temp.setMessage("bit!");
System.out.println(temp.getMessage());
}

b.设置下限的作用 :
在这里插入图片描述
eg:? super String,表示只能够设置String及其父类Object。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值