gpt4 book ai didi

java - 类型不匹配 : cannot convert from to in Tomcat7/Java 1. 7

转载 作者:行者123 更新时间:2023-11-28 22:53:47 25 4
gpt4 key购买 nike

我在以下行遇到了一个奇怪的错误:

ArrayList<BlastHit> filtered = new ArrayList<BlastHit>();

...其中 BlastHit 是我编写的一个类。

这是一个 .jsp 文件,由 Tomcat 7 在 Ubuntu 上使用 Java 1.7 执行。

完整的堆栈跟踪是:

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

An error occurred at line: 26 in the jsp file: /results.jsp
Type mismatch: cannot convert from java.util.ArrayList<BlastHit> to java.util.ArrayList<BlastHit>
23: ArrayList<BlastHit> filtered = new ArrayList<BlastHit>();
24: try {
25: blastResults = new BlastResults(json);
26: filtered = Blast.filterBySpecies(blastResults.getHits(), request.getParameterValues("species"));
27: } catch (Exception e) {
28: blastResults = new BlastResults();
29: filtered = new ArrayList<BlastHit>();


An error occurred at line: 58 in the jsp file: /results.jsp
The method makeHitHTML(BlastHit) in the type Blast is not applicable for the arguments (BlastHit)
55: out.println("No hits found");
56: }
57: for (int i = 0; i < filtered.size(); i++) {
58: out.println(Blast.makeHitHTML((BlastHit)filtered.get(i)));
59: }
60: }
61: %>


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

它本质上不是在告诉我它不能从 BlastHit 类型转换吗?输入 BlastHit ?他们是同一个类(class)!这是怎么回事?

我可能遗漏了一些重要的数据,请随时向我询问更多信息。

非常感谢。

附言我很感激你现在真的不应该在 JSP 页面中编写 scriptlet,但是......好吧,一次一个问题。

编辑:我感谢错误消息说问题出在第 26 行,但如果你删除它,那么 ArrayList<BlastHit> filtered = new ArrayList<BlastHit>(); 就会有问题。行。

最佳答案

检查一下1. 不存在两个同名不同包的类。您可以尝试在测试中为它们加上包前缀。2. 同一个包中的同一个类可能有两个不同的定义,但来自不同的来源( jar )或不同的类加载器(因为你正在玩 tomcat)。

您可以尝试在普通类中编写相同的代码,看看它是否有效。

关于java - 类型不匹配 : cannot convert from <ObjectTypeX> to <ObjectTypeX> in Tomcat7/Java 1. 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com