首页 > 开发 > JAVA > 正文

警告: [unchecked] 未经检查的转换

2017-09-07 09:07:25  来源:网友分享

代码如下:

 @Test    public void testMonitorInfo(){        Connection connection = alarmService.conn("121.40.157.200", "deploy", "deploy");       Map<Alarm.AlarmType,Object> map = alarmService.minitorResult(connection);        Double cpuInfo =(Double)map.get(Alarm.AlarmType.CPU);        System.out.println("cpuInfo:"+cpuInfo);        Double memInfo =(Double)map.get(Alarm.AlarmType.MEM);        System.out.println("memInfo:"+memInfo);        Map<String,Double> disInfo = (Map<String,Double>)map.get(Alarm.AlarmType.DISK);        System.out.println("disInfo:" + disInfo);        Assert.assertEquals(1,1);    }

报警告
E:\BriAir\src\test\java\com\hp\briair\AlarmServiceTest.java:43: 警告: [unchecked] 未经检查的转换

    Map<String,Double> disInfo = (Map<String,Double>)map.get(Alarm.AlarmType.DISK);                                                            ^

需要: Map<String,Double>
找到: Object
1 个警告

从警告代码来看map已经用泛型约束了(Map<String,Double>)map,请问是什么原因导致该警告?

解决方案

Java 对带有泛型的转换都会出现 unchecked 的警告的。要消除这个警告,可以用 @SuppressWarning 进行标注,或者是将 Map<String, Double> 继承为一个没有泛类的类。