gpt4 book ai didi

java - 类对象的通用类型规范

转载 作者:搜寻专家 更新时间:2023-11-01 02:33:44 24 4
gpt4 key购买 nike

我正在使用 HashMap 和下面显示的方法来跟踪类类型的更改监听器。 IDE 正在发出警告

[rawtypes] found raw type: java.lang.Class
missing type parameters for generic class java.lang.Class<T>.

需要指定什么类型的类才能解决警告?

private HashMap<Class, Set<ChangeListener>> classChangeListeners;

/**
* Adds a ChangeListener to the listener list for the specified class type. The class type
* specified must be a subclass of {@link BusinessObject}.
*
* @param <T> the type of BusinessObject.
* @param cls the class type.
* @param listener the ChangeListener to be added.
*/
public <T extends BusinessObject> void addChangeListener(Class<T> cls, ChangeListener listener)
{
if (!classChangeListeners.containsKey(cls))
{
classChangeListeners.put(cls, new TreeSet<ChangeListener>());
}

classChangeListeners.get(cls).add(listener);
}

最佳答案

如果您不关心指定特定类型 Class如果你正在使用,你可以使用 Class<?>而不是 raw type Class .

在某些情况下,您需要使用通配符,Class<? extends BusinessObject>或对其进行参数化,Class<T> - 但通常 Class<?>就足够了,而且很难从一个简短的片段中推断出您真正想要的是什么。

此外,看起来您正在使用包含集合的 map 。您可以考虑使用 Multimap它内置了此功能,使用起来更方便。

关于java - 类对象的通用类型规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3282361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com