当前位置: 首页 > 知识库问答 >
问题:

无法从Set来设置

谢骏奇
2023-03-14

我正在尝试执行以下操作以避免稍后未选中的转换:

Set<Entry<String, ? extends SerializableForLayout>> set = 
layoutObjectList.entrySet();
Type mismatch: cannot convert from Set<Map.Entry<String,capture#2-of ? 
extends SerializableForLayout>> 
to Set<Map.Entry<String,? extends SerializableForLayout>>
public void loadLayoutList(ArrayList<SerializableForLayout> preparedList,
                           ConcurrentHashMap<String, ? extends SerializableForLayout> layoutObjectList 
                               )
    {       
        SerializableForLayout t;
        if (layoutObjectList == null)return;

        Set<?> set = layoutObjectList.entrySet();       
        Iterator<?> itTags = set.iterator();
        Entry<String, SerializableForLayout> entry;

        while (itTags.hasNext()) {
            entry = (Entry<String, SerializableForLayout>) itTags.next();
            t = entry.getValue();
            addForSerializableLayouts(t,preparedList);
        }
        Collections.sort(preparedList, ApplicationsSort.LayoutWeightComparator);
    }
Set<?> set = layoutObjectList.entrySet();

强制取消行上未选中得强制转换:

entry = (Entry<String, SerializableForLayout>) itTags.next();

我如何做到这一点而不需要抑制?

共有1个答案

艾灿
2023-03-14

问题是,您正在使用多个,而在Java中,它们不能保证是相同的。使此方法为泛型,以便您有一个泛型类型参数可供引用,并且在整个方法中都是相同的。

public <T extends SerializableForLayout>
    void  loadLayoutList(ArrayList<SerializableForLayout> preparedList,
                         ConcurrentHashMap<String, T> layoutObjectList)

那么您应该能够使用t正确定义set变量。

Set<Map.Entry<String, T>> set = layoutObjectList.entrySet();
 类似资料:
  • 我确实从NYTimes API中获取了数据,并在控制台上记录了它们。我的初始状态是{searchresponse:null},然后设置state the response this.setstate=({searchresponse:response.data});并将其传递给另一个名为ListView_Component的组件。在该组件中,我处理prop的null值。 但是来自API的响应没有推

  • 我有一个接口和枚举,如下所示: 现在,为了调用,我创建了一个包含所有元素的枚举集,因此执行以下操作:

  • 下面的示例将展示使用方法在将HTML字符串解析为Document对象后将html设置,前置或附加到dom元素。 语法 (Syntax) Document document = Jsoup.parse(html); Element div = document.getElementById("sampleDiv"); div.html("<p>This is a sample conten

  • 我正在开发一个Grails应用程序。我有一个带有一些属性的Groovy bean。我试图使用setter方法实例化和设置Java类中的一些属性。虽然我没有任何错误,但属性不包含任何值。我尝试在调试模式下查看对象内容:groovy对象包含1个唯一字段(r$fields),其中包含一个空的HashMap。 新潮豆 Java代码 添加作为Java代码中的最后一条语句,我得到以下NPE Stacktrac

  • 问题内容: 我试图创建一个字符串集,其中填充了哈希表中的键,以便for- each循环可以遍历该Set并将默认值放入哈希表中。我仍在学习Java,但是我尝试做的方式不是有效的语法。有人可以演示这样做的正确方法,并解释为什么我的方法行不通,而他们的方法行得通。 问题答案: 不是类,而是接口。 因此,基本上可以仅实例类实现(,或) 例如 :

  • 下面的示例将展示使用方法设置dom元素的属性,批量更新以及在将HTML String解析为Document对象后添加/删除类方法。 语法 (Syntax) Document document = Jsoup.parse(html); Element link = document.select("a").first(); link.attr("href","www.yahoo.c