前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中的泛型与重载

Java中的泛型与重载

作者头像
用户7886150
修改2020-12-14 15:29:39
修改2020-12-14 15:29:39
7550
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java中的方法重载和空错误

这一篇文章是关于Java中泛型中重载的问题,我们应该知道,方法的签名包括,参数类型,参数数量,有无返回值,还有方法名称四个条件。其中可能和泛型有关的问题就是参数的类型、返回值这两个。先针对参数的重载,看看下面的代码: 

import java.util.*;

public class UseList<W, T>

{

    void f(List<T> v){}

    void f(List<W> v){}

上面的代码被提示错误,因为由于边界擦出的原因,T、W两个参数都被擦除为Object,所以这两个方法其实都是同一个方法,所以这个时候我们应该避免重载,而将两个方法名进行区分,如下所示: 

import java.util.*;

public class UseList<W, T>

{

    void f1(List<T> v){}

    void f2(List<W> v){}

下面来尝试一下有关于返回值的重载,代码如下: 

import java.util.*;

public class UseList<W, T>

{

    W f(){return (W) new Object();}

    T f(){return (T) new Object();}

这个代码同样不能进行编译,所以我们应该避免用泛型参数进行重载。

本文系转载,前往查看

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

本文系转载前往查看

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档