javabeans - Java: Trouble with wildcards/generics -
this question has answer here:
i struggling using wildcards/generics. i'm trying create filemanager
utility class can accept custom java beans , write read/write bean file. give example imagine have interface called data
implemented recipedata
, demographicdata
. i'm using super csv
convert csv file java bean. here read method based on tutorial code found super csv
.
public interface data { method declarations } public class recipedata implements data { class stuff goes here } public class demographicdata implements data { class stuff goes here } final public class filemanager { public static void parsecsvfile(string filename, cellprocessor[] processors, string[] namemappings, list<? extends data> container) { icsvbeanreader beanreader = null; try { beanreader = new csvbeanreader(new filereader(filename), csvpreference.standard_preference); data data; while((data = beanreader.read(data.class, namemappings, processors)) != null ) { container.add(data); } } { if (beanreader != null) { beanreader.close(); } } } }
currently, i'm getting following error:
the method add(capture#1-of ? extends data) in type list not applicable arguments (data)
i'm not sure i'm doing possible. idea is, container
passed can of type recipedata
or demographicdata
. think 1 problem data
should of 2 types.
can give feedback on how potentially fix or if it'll work?
edit: i'm not sure possible.
instead of using wildcard list<? extends data> container
, use list<data> container
.
Comments
Post a Comment