映射java中的映射
我是java新手。我试图传递一个映射在另一个映射中的参数,但是我得到了一个错误“identifier expected”(find int,required reference) 代码如下:映射java中的映射,java,netbeans,Java,Netbeans,我是java新手。我试图传递一个映射在另一个映射中的参数,但是我得到了一个错误“identifier expected”(find int,required reference) 代码如下: package learning; import java.util.*; import java.text.SimpleDateFormat; public interface Policy { public void toggleApp(Map<Map<Appl
package learning;
import java.util.*;
import java.text.SimpleDateFormat;
public interface Policy {
public void toggleApp(Map<Map<Appliance,SimpleDateFormat>,int>toggle); *error here*
}
class Appliance
{
String appName = "";
int appID;
double demand = 0.0;
}
包学习;
导入java.util.*;
导入java.text.simpleDataFormat;
公共接口策略{
public void toggleApp(映射切换);*此处出错*
}
类设备
{
字符串appName=“”;
int-appID;
双需求=0.0;
}
不能在基元类型(如int
)上参数化泛型(如Map
)。请尝试改用像Integer
这样的包装类:
Map<Map<Appliance,SimpleDateFormat>,Integer>
Map
将int
更改为Integer
泛型只能接受引用类型作为参数。问题在于
int
作为映射的值类型int
是一个原语,Java泛型仅适用于引用类型
将int
替换为Integer
,它将工作:-)
由于Java有,您可以使用普通操作,它会自动将
int
s转换为Integer
s<代码>地图。放置(键,1)将起作用。它将执行Integer.intValue(1)
,这是一个整数
,您不能提供基本类型(例如int
)作为泛型类的类型参数
改变
Map<Map<Appliance,SimpleDateFormat>,int>
^^^
Map在Map
中不能有int
(主类型),它只接受对象
:
Map<Map<Appliance,SimpleDateFormat>, Integer > toggle;
地图切换;
map作为简单类型的键?尝试Integer
而不是int
。
Map<Map<Appliance,SimpleDateFormat>, Integer > toggle;