jsp提示错误: Cannot invoke equals(int) on the primitive type int

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp提示错误: Cannot invoke equals(int) on the primitive type int相关的知识,希望对你有一定的参考价值。

报错信息:
Multiple annotations found at this line:
- Cannot invoke equals(int) on the primitive
type int
- Line breakpoint:editBlog.jsp [line: 51]

jsp代码:
<tr>
<td>分类:</td>
<td><select name="category" id="category">
<%
Category c = null;
int cid=blog.getCategoryid();
for (int i = 0; i < categoryList.size(); i++)
c = (Category) categoryList.get(i);
if(c.getId().equals(cid))
%>
<option value="<%=c.getId()%>" selected><%=c.getName()%></option>
<% else %>
<option value="<%=c.getId()%>"><%=c.getName()%></option>
<%
%>
</select></td>
</tr>

各位大侠,为什么老是报这种错误?我应该怎么办?

jsp提示错误: Cannot invoke equals(int) on the primitive type int,是设置错误造成的,解决方法如下:

1、首先在电脑中进入Tomcat 安装目录里面。

2、然后在文件目录里,打开安装的Tomcat。

3、接着在Tomcat文件夹里,打开config文件夹。

4、最后在config文件夹中,找到并打开server.xml。

5、然后添加 useBodyEncodingForURI="true"代码,JSP跳转后参数传递编码错误就消失了。

参考技术A if(c.getId().equals(cid))
直接使用==比较
if(c.getId()==cid)

这行代码有问题啊 Java当中Object类当中有equals方法 但是基本数据类型并不是Object类型
Java当中有两种数据类型 1st.基本数据类型 2nd.引用类型
其中基本数据类型包括boolean char byte short int long float double
引用类型就是自定义类型也就是Object类型
必须要明白在Java当中能够调用equals方法比较的必须是引用类型 基本数据类型是语言内置的 并不是Object子类类型 所以不能调用equals方法 直接使用==比较即可

PS:在JDK1.5的时候Java当中的基本数据类型和它所对应的包装类类型可以相互直接赋值
int num = 5;
Integer i = num;//这时候等价于 Integer i = new Integer(num);
同样
Integer num = new Integer(3);
int i = num;//这时候相当于 int i = num.intValue();
也就是说int类型和Integer可以直接相互赋值 例如Integer i = 5;
这也导致了一个很难理解的问题:
public static void test(Object obj)
这样的方法直接使用int类型的参数的时候是可以编译通过的,但是在这里相当于传入的是Integer对象,而不是证明int类型是Object类型

如果还有不懂的 请继续追问 或者qq联系本回答被提问者和网友采纳
参考技术B if(c.getId().equals(cid))

看看这里,错误提示,CID是int类型的。。
.equals(string) 不能.equals(int)
换成if(c.getId()==cid) 或者 if(c.getId().equals(String.valueof(cid)))试试
注意后面的括号
参考技术C Category getId() 返回是不是为int? 参考技术D
int这种基础数据类型不能用equals这个方法 ,如果你要用的话那必须是Integer类型。 比如:
Integer i = new Integer(5);
boolean isEqual = i.equals("xxx");
System.out.println(isEqual);

以上是关于jsp提示错误: Cannot invoke equals(int) on the primitive type int的主要内容,如果未能解决你的问题,请参考以下文章

Sharepoint client model 中出现Cannot invoke HTTP DAV request. There is a pending query 的解决办法

Cannot invoke Tomcat manager: Error writing to server

解决关于:TypeError: Class constructor Model cannot be invoked without 'new'

jsp页面老提示Multiple annotations found at this line: - javax.servlet.jsp.JspException cannot be resolve(

JSP页面java代码报错:Purgoods cannot be resolved to a type

jsp页面出现“String cannot be resolved to a type”错误解决办法