[英]How to avoid this java generics warning
采用以下方法,该方法仅按名称返回字段映射:
public static < T > HashMap< String, Field > getFields( Class< T > klass ) {
HashMap< String, Field > fields = new HashMap< String, Field >();
for ( Field f : klass.getFields() ) {
fields.put( f.getName(), f );
}
return fields;
}
如果删除方法签名中的泛型类型,则该方法的行为相同,只是您收到使用原始类型的警告。 我遇到过其他类似的事情,尤其是反射,你不一定有输入类型。 看起来反射自然会出现泛型问题,因为反射是为了让你在不知道(或关心)类型时使用对象。
除了在所有内容上粘贴“@SuppressWarning”之外,是否有人对更优雅的处理反射方式有任何好的想法,而不会被泛型一直骂?
怎么样(你不需要模板参数T
,所以你可以跳过它):
public static HashMap< String, Field > getFields2( Class<?> klass ) {
HashMap< String, Field > fields = new HashMap< String, Field >();
for ( Field f : klass.getFields() ) {
fields.put( f.getName(), f );
}
return fields;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.