二元运算符的坏操作数类型'!=' first type:String第二种类型:int

时间:2018-06-05 12:58:27

标签: java comparison

我有一个关于显示的问题,我想看看我的变量CodeA中的每个项目,类型为String,它位于JComboBox中。变量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";

            }

3 个答案:

答案 0 :(得分:0)

这里有两个问题:

1)您正在尝试将字符串与int0)进行比较。您需要在其周围加上引号,以便进行StringString比较。

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

时与Strings方法进行比较

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

答案 1 :(得分:0)

不确定你真正想做什么。目前,您将String与整数进行比较。

如果idCat不应 null ,那么你必须

if (idCat != null)

如果不能 null

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

或者如果它不应该包含值&#34; 0&#34;

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

答案 2 :(得分:0)

两条评论:

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

2)尽可能使用接口而不是实现类...在这里,你可以将很多ArrayList替换为List。

此致