栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

接受两种类型之一的泛型类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接受两种类型之一的泛型类

答案是不。至少没有办法使用泛型类型做到这一点。我建议结合使用泛型和工厂方法来执行您想要的操作。

class MyGenericClass<T extends Number> {  public static MyGenericClass<Long> newInstance(Long value) {    return new MyGenericClass<Long>(value);  }  public static MyGenericClass<Integer> newInstance(Integer value) {    return new MyGenericClass<Integer>(value);  }  // hide constructor so you have to use factory methods  private MyGenericClass(T value) {    // implement the constructor  }  // ... implement the class  public void frob(T number) {    // do something with T  }}

这样可以确保只能创建

MyGenericClass<Integer>
MyGenericClass<Long>
实例。尽管您仍然可以声明类型的变量,
MyGenericClass<Double>
但它必须为null。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号