2014-09-04 2 views
2

Во-первых, извиняюсь за то, что я - новый разработчик Java, и мне было поручено работать над массовое применение, поэтому я очень не в своей лиге.Ошибка: метод convertProspectIds (Map <String, String>) в типе CompassADFAdaptor не применим для аргументов (список <String>)

У меня есть этот код. В основном, он ищет некоторые значения в URL-адресе веб-приложения, а затем передает имя переменной URL-адреса и значение переменной URL-адреса в приложение, где оно будет добавлено в выходной поток текста. Таким образом, переменные выглядели бы как «& LeadID = 123», которые переводили бы на «LeadId» и «123». В этот момент мы переформатировать его в значение XML, такие как

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

Это код, который отвечает за проверку для переменных, а затем положить их в карту, а затем (в теории), передавая их к коду, который будет форматировать их:

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. метод setProspect (ArrayList) не определено для типа Проспект

  2. В convertProspectIds метод (Карта) в тип CompassADFAdaptor не применяется для аргументов (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; 
    } 

Я не совсем уверен, что мне не хватает ... может кто-нибудь помочь мне?

ответ

1

convertProspectIds принимает Map в качестве аргумента, и вы передаете его List. Вам необходимо либо изменить подпись метода, либо преобразовать List в Map.

То же самое касается setProspect метода. Он не ожидает ArrayList в качестве параметра.

+0

Прошу прощения, но я просто не совсем понимаю, как это изменить. Предполагая, что мне нужно передать карту, поэтому у меня есть пара ключей и значений, что я могу изменить? –

+0

Что находится в перспективах. Это список строк? – jny

+0

Это будет набор ключевых ценностей, как: ВТК, 123 помощи, 456 EFD, 789 и т.д. –

Смежные вопросы