2010-11-01 84 views
2

在一个抽象类,是下面的抽象方法的定义:引用泛型类型地图<K,C>应该是参数

public abstract Map<String, String> aMethod(aType type); 

我无法阻止在Eclipse这样的警告:

引用泛型类型地图应该参数化

我一直在寻找,似乎无法解决这个问题。我发现其他人遇到同样的错误,但在他们的情况下,这似乎是有道理的。在我的看来,我看不到逻辑。

我可以禁止警告,但我想了解在执行解决方法之前发生了什么问题。

谢谢。

+0

Eclipse有一种习惯,在你修复这样的事情时不会识别它。尝试重建/编译项目,警告可能会消失。 – 2010-11-01 14:13:06

回答

5

您的Map已经参数化,所以警告没有意义。尝试清理你的项目。

+0

清洗固定它;谢谢!下次我有类似的问题时,我会记住这一点。 – Qwerty 2010-11-01 14:39:38

1

你确定错误是最新的文件?

这编译没有警告:

import java.util.Map; 
class aType {} 

public abstract class Main { 
    public abstract Map<String, String> aMethod(aType type); 
} 

然而,这会产生错误你描述:

import java.util.Map; 
class aType {} 

public abstract class Main { 
    public abstract Map aMethod(aType type); 
} 
2

此警告propably的东西引起的像

public Map aMethod(aType type); 

到的差异这个:

public Map<String, String> aMethod(aType type); 

是后者创建了一个只能将字符串放入内部的Map,但您可以确定在请求值时总是获取字符串。前者让你能够将所有东西都放在里面,但是当你从Map中取出一个值时,你不能确定你会得到什么。

相关问题