zoukankan      html  css  js  c++  java
  • Java List<String> IndexOf(object e)坑

    近来,排查项目代码时,发现一处意外的坑。这个坑感觉很低级,也很奇怪:

    在java中声明一个List list,然后用indexOf(object e)进行查找,这时分两种情况:

    情况一: 如果传入参数为string类型,则一切正常。能正确找到并返回索引。

    情况二: 如果传入参数为integer,运行也一切正常,但是始终返回-1。 最终翻了下函数定义:

    int indexOf(Object o);

    参数是Object,于是不禁想:如果你没有做严格的类型转换,转换为String,那么你为啥要讲接口参数设计为Object类型呢?

    这种情况,我分析应该是当初设计者并没有严格考虑,不同类型的参数装箱后的实际表现,而仅仅是设计一个通用的接口,待以后再补上这个口子,但是到目前为止,这个口子依然存在,而且依然没有人去细究这个设计及所有可能遇到的情况。这或许是java的一个历史遗留问题。

    文章出处:www.cnblogs.com/jizhong

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。否则保留追究法律责任的权利。

  • 相关阅读:
    为zabbix穿上一件漂亮的外衣
    CentOS7 Ceph分布式集群部署
    SSH 免秘钥登录
    zabbix监控Tomcat/JVM 实例性能
    zabbix 监控 IPMI
    2装饰者模式
    1代理模式
    3单例模式
    2抽象工厂模式
    1工厂模式
  • 原文地址:https://www.cnblogs.com/jizhong/p/15556191.html
Copyright © 2011-2022 走看看