账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    这样的泛型定义到底如何调用才是对的呢?
    37
    0
    public class Abc<T>{
    
         public Abc(Class<T> type) {
            
        }
    }

    我调用的时候

    Abc<HashSet<String>> Abc = new Abc<HashSet<String>>(HashSet<String>.class);

    通不过,报错

    Abc<HashSet<String>> Abc = new Abc<HashSet<String>>(HashSet.class);

    还是报错

    Abc<HashSet> Abc = new Abc<HashSet>(HashSet.class);

    这样终于可以了,但是没有指定 HashSet 容器内部的类型,IDE 报警,而且我也觉得这好像不是正统的 java 写法,正统的 java 写法都应该指定容器里的类型的。

    我查了不少资料,因为类型擦除的原因,看起来最后一种才是对的,但是为啥最后一种那么别扭呢。没给容器指定元素类型这个报警问题是只能这样,还是有更好的办法?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部