映射java中的映射

映射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

我是java新手。我试图传递一个映射在另一个映射中的参数,但是我得到了一个错误“identifier expected”(find int,required reference)

代码如下:

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;