前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java每日一题20201006

java每日一题20201006

作者头像
用户7656790
发布2020-11-10 11:07:23
2020
发布2020-11-10 11:07:23
举报
文章被收录于专栏:五角钱的程序员

大家好,我是向同学,从今天继续每日一题,旨在为提高大家的基础知识。话说干了这么多年的开发,只知道会用,怎么用,用什么,隐约也知道了为什么用,但为啥JAVA总像一个犹抱琵琶半遮面的女子,总让人看不透,看不腻?应该就是基础不扎实了

每日一题20201004答案:

点击下面链接查看每日一题20201004:

java每日一题20201104

method01的重载可以正常编译通过;method02不能正常编译。

编译时报错信息如下:

代码语言:javascript
复制
Method method02(List<Integer>) 
has the same erasure method02(List<E>) 
as another method in type Ques1103

意思就是method02(List<Integer>)方法在编译时擦除类型后的方法是method02(List<E>),与另一个方法重复了(即是方法签名重复),这就是java泛型擦除引起的问题。

在编译后所有的泛型类型都会做相应的转化,转换规则如下:

  1. List<String>、List<Integer>、List<T>擦除后的类型为List;
  2. List<String>[]擦除后的类型为List[];
  3. List<? extends E>、List<? super E>擦除后的类型为List<E>;
  4. List<T extends Serializable & Cloneable>擦除后为List<Serializable>;

Java编译后的字节码中没有泛型的任何信息,不管是Ques1103<String>还是Ques1103<Integer>引用的都是同一字节码。

今日问题:
代码语言:javascript
复制
public class Ques1104 {

    private String num;

    public void setNum(String num){
        num = num;  // 1
        this.num = num;  // 2
    }

    public String getNum(){
        return num;
    }
}

注释1和2两处的作用是否一样?(问题分析将在下一期每日一题公布)大家也可以在留言区留言!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五角钱的程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 每日一题20201004答案:
    • 今日问题:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档