java - CompassADFAdaptor 类型中的错误 : The method convertProspectIds(Map<String, String>) 不适用于参数 (List<String>)

标签 java arraylist dictionary

首先,我很抱歉,因为我是一名全新的 Java 开发人员,并且负责处理大型应用程序,所以我非常不适应。

我目前有这段代码。基本上,它在 Web 应用程序的 URL 上查找一些值,然后将 URL 变量的名称和 URL 变量的值传递给应用程序,然后将其添加到输出文本流中。所以变量看起来像“&LeadID=123”,这将转换为“LeadId”和“123”。那时,我们将其重新格式化为 XML 值,例如

<id sequence="1" source="leadId">123</id>

这是负责检查变量的代码,然后将它们放入 Map,然后(理论上)将它们传递给格式化它们的代码:

List<Map<String, String>> list = new ArrayList<Map<String, String>>();
    Map<String, String> ProspectTrackingKeys = new HashMap<String, String>();

    if (recipSettings.containsKey("leadId")) {
        ProspectTrackingKeys.put("LeadId", recipSettings.get("leadId"));
    }

    if (recipSettings.containsKey("wtk")) {
        ProspectTrackingKeys.put("wtk", recipSettings.get("wtk"));
    }

    if (recipSettings.containsKey("efd")) {
        ProspectTrackingKeys.put("efd", recipSettings.get("efd"));
    }

    if (recipSettings.containsKey("aid")) {
        ProspectTrackingKeys.put("aid", recipSettings.get("aid"));
    }

    if (recipSettings.containsKey("oth")) {
        ProspectTrackingKeys.put("oth", recipSettings.get("oth"));
    }
    list.add(ProspectTrackingKeys);


    prospect.setProspect(adaptor.convertProspectIds((Map<String, String>) prospectIds));

但是,最后一行代码(上面)产生了这些错误:

  1. 未为类型 Prospect 定义方法 setProspect(ArrayList)

  2. CompassADFAdaptor 类型中的方法 convertProspectIds(Map) 不适用于参数 (List)

这是对这段代码的引用,应该将值传递到这里,然后将其格式化为 XML 文本:

public ArrayList<ProspectId> convertProspectIds(
            Map<String, String> recipientSettings) {
                ArrayList<ProspectId> prospectIdList = new ArrayList<ProspectId>();     

                int i = 0; 
                Iterator it = recipientSettings.entrySet().iterator();
                while(it.hasNext()) {
                    Map.Entry pairs = (Map.Entry)it.next();
                    ProspectId Id = new ProspectId();
                    Id.setSequence(i++);
                    Id.setSource(ProspectIdSource.valueOf(pairs.getKey().toString()));
                    Id.setValue(pairs.getValue().toString());
                    prospectIdList.add(Id);
                }

                return prospectIdList;
    }

我不太确定我错过了什么......有人可以帮我吗?

最佳答案

convertProspectIdsMap 作为参数,您将传递给它一个 List。您需要更改方法签名或将 List 转换为 Map

setProspect 方法也是如此。它不期望 ArrayList 作为参数。

关于java - CompassADFAdaptor 类型中的错误 : The method convertProspectIds(Map<String, String>) 不适用于参数 (List<String>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25671855/

相关文章:

python - 如何将用户输入存储到字典中? Python

mysql - 如何一次将多个条目插入 MySQL 数据库

java - 未找到 JNDI Ldap 类

java - 无法得到持续的响应

java - 如何计算 arrayList 中的属性?

java - Java中的ArrayList删除元素

excel - 私有(private)函数跳过 For 循环

java - 相机 Intent ACTION_IMAGE_CAPTURE 并放置额外数据

Java错误: bad source file: file does not contain class

java - 根据文件头数据确定文件扩展名的设计