java - 类型不匹配 : cannot convert from Boolean to boolean

标签 java exception tomcat boolean

我得到这个异常:

org.apache.jasper.JasperException: Unable to compile class for JSP

我使用的是 tomcat 5.5.23。

org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 29 in the jsp file: /jsp/general/pos/DoMultiWordFrozen.jspf
Type mismatch: cannot convert from Boolean to boolean
26:
27: item = (ItemType)session.getAttribute("item");
28: id = Integer.parseInt((String)session.getAttribute("id"));
29: newItem = Boolean.valueOf((String)session.getAttribute("newItem"));
30: changeGroup = null;
31:
32: if (!newItem && item.getMultiWordFrozen() != null && id != 0) {
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.ErrorDispatcher.javacError(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.JDTCompiler.generateClass(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.compiler.Compiler.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.JspCompilationContext.compile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.servlet.JspServletWrapper.service(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.servlet.JspServlet.serviceJspFile(jasper5-compiler-5.5.23.jar.so) org.apache.jasper.servlet.JspServlet.service(jasper5-compiler-5.5.23.jar.so) javax.servlet.http.HttpServlet.service(tomcat5-servlet-2.4-api-5.5.23.jar.so)

newitem 定义为:

boolean newItem = false;

解决方案:

这是因为我使用了不包括autobxing旧JDK 版本。 升级到 jdk 1.6 (或任何 >= 1.5 )后。现在工作正常。

最佳答案

Boolean.valueOf 返回一个 Boolean,而不是一个 boolean - 所以听起来您可能想要:

newItem = Boolean.valueOf((String)session.getAttribute("newItem")).booleanValue();

或者,也许更易读:

String newItemAttribute = (String) session.getAttribute("newItem");
newItem = Boolean.valueOf(newItemAttribute).booleanValue();

我有点惊讶它没有自动为您拆箱,但我想这取决于 Jasper 使用的 Java 编译器版本。

关于java - 类型不匹配 : cannot convert from Boolean to boolean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911234/

相关文章:

java - 使用 Java,以其他应用程序可以轻松读取的格式将文件写入磁盘的最简单方法是什么

java - 猜谜游戏逻辑

c++ - 异常抛出异常

apache - 在 GCE VM 上启用 https

tomcat - 无法 "Unlock the Jenkins"。即使我正在输入正确的 key 。页面正在重新加载

spring - java.lang.ClassNotFoundException : org. apache.jsp.WEB_002dINF.pages.LandingPage_jsp

java - 在java中划分每个长数

java - JTextField java?

c# - DateTime.ParseExact 方法 : always throws exception even with correct format 的问题

android - 加载 YouTube 视频时出现 ActivityNotFoundException