我的代码类型安全吗?

Che*_*tah 6 java type-safety

我很确定这是类型安全的,但只是想检查Eclipse是否要求我添加@SuppressWarnings("unchecked")注释.

Map<String, IFace> faces;

public <T extends IFace> T getFace(String key)
{
    return (T) faces.get(key);
}
Run Code Online (Sandbox Code Playgroud)

DrY*_*Yap 4

它不是类型安全的。您在这里进行向上转换,因此如果您转换为不兼容的派生类,您将在某些时候遇到错误。

例如,如果A_FaceB_Face都扩展IFace。您可能在某些时候将 a 转换 为类型不安全的B_Facean 。A_Face