返回语句应该在Java中使用泛型吗?
发布时间:2020-12-15 02:01:46 所属栏目:Java 来源:网络整理
导读:我有一个关于在编码中使用“最佳实践”的基本问题. (我正在使用 Java,但问题对于OOP来说是一般性的.)当为一个打算长期使用的类编写方法时,是否最好留下返回对象有或没有泛型? 在我的情况下具体来说,我正在返回一个Map String,Integer用这个方法.我应该在ret
我有一个关于在编码中使用“最佳实践”的基本问题. (我正在使用
Java,但问题对于OOP来说是一般性的.)当为一个打算长期使用的类编写方法时,是否最好留下返回对象有或没有泛型?
在我的情况下具体来说,我正在返回一个Map< String,Integer>用这个方法.我应该在return语句中指定它,还是应该只返回一个Map? 解决方法
最好尽可能使用泛型.它将有助于避免运行时异常,并且它不会强迫使用您的代码的人进行一堆丑陋的类型转换.例如,如果您使用以下签名:
Map<String,Integer> getMap(); …然后消费代码可能如下所示: Map<String,Integer> map = getMap(); Integer val = map.get(key); …但是如果你使用这样的签名: Map getMap(); …消费代码可能如下所示: Map<String,Integer> map = (Map<String,Integer)getMap(); Integer val = map.get(key); 通过使用泛型,不仅可以保存(Map< String,Integer>)强制转换,但是如果您更改getMap以实际返回Map< String,Object>,您将收到编译时错误(这是容易捕获和修复),而不是在调用map.get(key)时可能会出现异常,并且JRE尝试将某个随机Object自动转换为Integer. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- intellij idea tomcat热部署配置教程
- java – 无法使用Paths.get()从Maven资源加载文件
- Mybatis中SqlMapper配置的扩展与应用详细介绍(1)
- java – 在Vaadin 7中调用VaadinSession getAttribute时需要
- 通常,当java返回“参数不正确”时它意味着什么
- .net – 使用Task.Wait()代码包装Async / Await IAsyncOper
- java – 用于签名jar的AspectJ加载时编织
- java – 如何计算一组字符串的最短唯一前缀?
- java – 如何处理Android中的标签
- 在java中显示来自2D数组数据的图像