Я вчера искал то же самое и наткнулся на ваш пост (и увидел, что он недавно).После некоторых поисков мне удалось преодолеть эту проблему, поэтому я решил, что было бы неплохо поделиться с вами своими выводами.
Я полагаю, что вы определили POJO для ваших данных, а затем добавили все эти объекты в HashMapя, если я прав).
То, что я сделал, было создать новый объект, который расширяет реализацию HashMap.(Фактически вам не нужно расширять это, вы можете использовать сам объект HashMap).Так что теперь вместо того, чтобы иметь объекты внутри HashMap, я непосредственно вставил значения для свойств.Но давайте просто добавим несколько блоков кода, чтобы очистить вещи:)
Предположим, у вас есть следующий PoJO
public class MyPOJO{
private String name;
private String value;
//getters, setters etc..
}
Вместо добавления этих различных объектов в список и предоставления его в качестве источника данныхВы можете использовать HashMap таким образом, чтобы определить свои объекты:
Map<String,String> myObject1=new HashMap<String,String>();
myObject1.put("name","Name1");
myObject1.put("value","Value1");
Map<String,String> myObject2=new HashMap<String,String>();
myObject2.put("name","Name2");
myObject2.put("value","Value2");
После определения этих объектов мы можем добавить их в список и предоставить его как источник данных (JRBeanCollectionDataSource
).Таким образом, ключи каждого HashMap
считаются свойствами, определенными в столбцах (свойства исходного POJO).
Я не знаю, является ли мое решение лучшим, но оно сработало для меня!