改善Java程序建议5

建议5:别让null值和空值威胁到变长方法

public class SuggestFive{
    public void methodA(String str,Integer... is){
    }

    public void methodA(String str,String... strs){
    }

    public static void main(String[] args) {
            SuggestFive suggestFive= new SuggestFive();
            suggestFive.methodA("China", 0);
            suggestFive.methodA("China", "People");
            suggestFive.methodA("China");
            suggestFive.methodA("China",null);
    }
}

上面的代码有两处编译不过,suggestFive.methodA("China")和suggestFive.methodA("China",null)。提示方法模糊不清,编译器不知道调用哪一个。
对于methodA("China")方法,根据实参"China"(String类型),两个方法都符合形参格式,编译器不知道该调用哪一个,于是报错。
对于methodA("China",null)方法,直接量null是没有类型的,虽然两个methodA方法都符合调用请求,但是不知道调用哪一个,于是报错了。
应该如下修改:

String[] strs = null;
suggestFive.methodA("China", strs);

也就是说让编译器知道这个null值是String类型的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,437评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,419评论 0 3
  • fable n.传说;寓言,童话;无稽之谈;人人谈论的话题v.讲故事,编寓言;虚构,杜撰;煞有介事地讲 bees ...
    Ghosting阅读 3,723评论 0 0
  • Go2Shell 一个可以快速在当前目录打开Shell的工具,小巧,非常好用! 如何下载Go2Shell 在app...
    时光记忆forever阅读 4,643评论 0 0

友情链接更多精彩内容