2013-09-10 2 views
0

Я поставил Ф.О. строк, и я нужно, чтобы добавить их в к ArrayList с типом PdfPCell для того, чтобы обработать их позже с помощью IText библиотеки. Вот код:Список <PdfPCell> не применяется для аргументов (String)

try { 
    Scanner scan = new Scanner(new File("file.txt")); 
    scan.useDelimiter(",|" + System.getProperty("line.separator")); 

    while(scan.hasNext()) { 
     String id = scan.next(); 
     String txt1 = scan.next(); 
     String txt2 = scan.next(); 
     String txt3 = scan.next(); 

     // ArrayList with PdfPCell type 
     List<PdfPCell> allCols = new ArrayList<PdfPCell>(); 
     allCols.add(id); 
     allCols.add(txt1); 
     allCols.add(txt2); 
     allCols.add(txt3); 

     System.out.println(allCols); 
    } 
    scan.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Ошибка: The method add(PdfPCell) in the type List<PdfPCell> is not applicable for the arguments (String)

Я застрял здесь. Как решить эту проблему? Заранее спасибо.

ответ

0

Список allCols is PdfPCell Набрал. вы не можете добавить в него объект String. Поскольку String не является подклассом PdfPCell :), он должен поднял ошибку времени компиляции.

вы должны просто создать объект PdfPCell добавить в него.

List<PdfPCell> allCols = new ArrayList<PdfPCell>(); 
allCols.add(new PdfPCell(new Phrase(id)); 
allCols.add(new PdfPCell(new Phrase(txt1)); 
... 
+0

Вы правы, но мне нужно применить строки к ArrayList или связать их как-то. Вот почему я создал этот вопрос. – Dozent

+0

ответ обновлен ... См. PdfCell может быть что угодно, например - фраза, абзац, ... любой элемент. Вы можете создать требуемый объект и добавить его. –

0

id является String и не может быть преобразован/типа отлиты к пользовательскому типу PdfPCell непосредственно. Даже если PdfPCell имеет только одну переменную экземпляра String.

Чтобы решить эту проблему, вы можете добавить конструктор аргументов на ваш PdfPCell или лучше добавить создать фабрику.

List<PdfPCell> allCols = new ArrayList<PdfPCell>(); 
allCols.add(Factory.getPdfCell(id));//or 
allCols.add(new PdfPCell(id)); 
Смежные вопросы