【问题标题】:bad operand types for binary operator '!=' first type: String second type: int二元运算符'!='的错误操作数类型第一种类型:字符串第二种类型:int
【发布时间】:2018-06-05 12:58:26
【问题描述】:

我有一个关于显示的问题,我想查看 JComboBox 中 String 类型的变量 CodeA 中的每个项目。变量 CodeA 表示表 Album 中的每个标识。

在我的 DaoAlbumMySql 我有错误消息..

二元运算符'!='的错误操作数类型第一种类型:字符串第二种类型:int

问题是根据 NetBeans 的if (idCat != 0)

   public ArrayList <Album> selectAlbums (String idCat)
        {
            ArrayList <Album> myList = new ArrayList();
            String req;

            if (idCat != 0)
            {
                req = "Select CodeA, TitreA, A.IdentC, DenomCat, " +
                " DateArrivee from album A,  " +
                "chanteur C where A.IdentC = C.IdentC" +
                " and CodeA = " + idCat + " order by 1";

            }

【问题讨论】:

  • !idCat.equals("0");?
  • idCat != null?
  • 我的问题已经解决了,谢谢

标签: java comparison


【解决方案1】:

这里有两个问题:

1) 您正在尝试将字符串与int (0) 进行比较。您需要在它周围加上引号,以使其成为 StringString 的比较。

2) 您正在与!= 进行比较。比较字符串是不正确的。比较Strings时用.equals()方法比较

(正如您正在检查 (With !=) 引用比较(地址比较).equals() 方法检查内容比较。)

【讨论】:

    【解决方案2】:

    不确定你真正想要做什么。目前您将字符串与整数进行比较。

    如果 idCat 不应该是 null 那么你必须

    if (idCat != null)
    

    如果它不能 nullempty

    if ((idCat != null) && (!idCat.isEmpty())
    

    如果不应该包含值“0”,则为最后一个

    if (!"0".equals(idCat))
    

    【讨论】:

    • 怜悯我明白我的问题:-)
    【解决方案3】:

    两个cmets:

    1) 在 Java 中,您无法将 String 与 int 进行比较。我认为您试图检测空值?根据您使用的 Java 版本,您可以使用 java.lang.Optional 作为其他人提供的答案的替代方法

    2) 尽量用接口代替实现类……这里可以把很多ArrayList替换成List。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多