NetBeans 15测试代码无法识别源类更新构造方法问题
NetBeans 15测试代码无法识别已有类新增构造方法的问题解决
问题背景
使用NetBeans 15 + OpenJDK 17,基于Ant构建Web项目,配置了Source Packages和Test Packages,部署到Tomcat 9后日常源码修改热重载正常。近期为已有类新增构造方法后,编译无异常,但Test Packages中的测试代码无法识别新增的构造方法。
示例源类
package com; import javax.servlet.http.*; import java.sql.Connection; import java.sql.SQLException; public class ClassA extends ClassAAbstract{ /** * Creates a new instance of ClassA */ public ClassA(HttpServletRequest request) throws SQLException { super(request); } public ClassA(HttpServletRequest request, String id) throws SQLException { super(request, id); } // 新增的构造方法 public ClassA(String str1, String str2, Connection conn) throws SQLException { super(str1, str2, conn); } }
报错信息
测试代码调用新增构造方法时,提示:
no suitable constructor found for ClassA(String,String,Connection) constructor com.ClassA(HttpServletRequest) is not applicable
仅能识别原有的两个构造方法。
已尝试的排查操作
- 关闭并重新打开项目
- 删除NetBeans项目文件夹后重新导入打开
- 删除NetBeans缓存后重复上述操作
此前相同环境下的旧版本项目可正常识别源码更新。
排查补充信息
- Edit 1:初始项目中已存在的类,后续代码更新无法被Test Packages识别;但新创建的类,代码更新可正常被测试包识别。
- Edit 2:部署到Tomcat的代码可正常运行新增构造方法,问题仅出现在测试包相关环节。
解决方案
发现项目依赖中存在包含**同名类(com.ClassA)**的Jar包,该Jar包中的类实现覆盖了Source Packages中的源码类。移除该Jar包后,测试代码可正常识别新增的构造方法。
内容的提问来源于stack exchange,提问作者Madd
相关产品推荐
相关产品推荐

