开发者社区> 问答> 正文

什么时候应该使用通用参数,什么时候应该使用父类作为参数

两者有什么区别?我什么时候应该使用?

通用:

public static <T extends SomeClass> void doSomething(T class)
{
}

父类作为参数:

public static void doSomething(SomeClass class)
{
}

展开
收起
几许相思几点泪 2019-12-23 17:50:23 800 0
1 条回答
写回答
取消 提交回答
  • 由于类型擦除,两种方法实际上是相同的。

    仅当您要从方法中获取return实例时,此类泛型才有用T。一个简单的例子是将存储在某个位置的对象转换为期望的类型(这是不安全的,因为我们没有实际检查它是否确实是的实例T,但这是另一回事了)

    public static <T extends SomeClass> T get(String name) {
        return (T) fancyLookup(name)
    }
    
    private static Object fancyLookup(String name) { ... }
    
    

    因此,回答您的问题:

    两者之间有什么区别? 没什么,在运行时它们实际上是相同的。

    我什么时候应该使用? 最好不要使用泛型,因为它们是相同的,并且在不需要泛型的地方引入泛型只会使您的代码复杂化

    2019-12-23 17:50:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载