You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala中使用Java单类型参数泛型类时抛出类型参数数量错误

问题排查与解决

先来看下你遇到的核心问题:Java中正常使用的单泛型参数RequestWrapper类,在Scala中被编译器要求传入2个类型参数,报错如下:

wrong number of type arguments for com.wipro.nepc.coe.requestWrapper.RequestWrapper, should be 2

根源分析

这个问题的本质是Scala代码没有显式导入你自定义的Java泛型类,导致编译器“张冠李戴”——它找到了另一个同名的RequestWrapper类(大概率来自Scala标准库或项目依赖),而那个类恰好定义了2个类型参数,因此抛出参数数量不匹配的错误。

你在Java中能正常使用,是因为Java编译器会优先检索你显式导入的包或当前包下的类,不会随便匹配其他同名类;但Scala有自己的默认导入列表,当类名冲突且未显式指定时,就会出现这种误匹配。

解决方案

只需要在Scala代码中显式导入你的自定义RequestWrapper类即可,修改后的代码如下:

// 必须加上这行,明确指定要使用的是你自己定义的RequestWrapper
import com.wipro.nepc.coe.requestWrapper.RequestWrapper
import java.util.HashMap

var testMap = new HashMap[String, Object]
var obj = new Integer(1)
testMap.put("one", obj)
var ownerIp: String = "10.145.59.107"
var requestWrap = new RequestWrapper[HashMap[String, Object]](testMap, ownerIp)

补充验证

为了确认是类名冲突导致的问题,你也可以在Scala中直接使用全路径类名来创建对象,这样也能绕过导入问题:

var requestWrap = new com.wipro.nepc.coe.requestWrapper.RequestWrapper[HashMap[String, Object]](testMap, ownerIp)

内容的提问来源于stack exchange,提问作者Pravin Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:53:21