Пример атрибута карты для моджо, упомянутого в maven.apache.org довольно прост, так как определяет карту со строкой в качестве ключа и значения, как указано ниже:
/**
* My Map.
*/
@Parameter
private Map myMap;
и его назначенная конфигурация будет выглядеть так:
<myMap>
<key1>value1</key1>
<key2>value2</key2>
</myMap>
То, что я пытаюсь достичь, - это более продвинутая карта, которая принимает String в качестве ключа и мой собственный определенный класс Person в качестве значения:
/**
* My Advanced Map.
*/
@Parameter
private Map<String,Person> myMap;
Класс Person находится в том же пакете, что и мой MOJO, и выглядит он так:
public class Person {
private String name;
private int age;
public void setName( String name )
{
this.name = name;
}
public void setAge( int age )
{
this.age = age;
}
public String getName( )
{
return this.name;
}
public int getAge( )
{
return this.age ;
}
}
Я предполагаю, что конфигурация моего MOJO будет выглядеть так:
<myMap>
<firstPerson>
<person>
<name>steve</name>
<age>26</age>
</person>
</firstPerson>
<secondPerson>
<person>
<name>meruem</name>
<age>1</age>
</person>
</secondPerson>
</myMap>
Запуск этого MOJO с приведенной выше конфигурацией создаст карту с определенными ключами, но я всегда получаю нулевые значения: {firstPerson=null,secondPerson=null}
В настоящее время я не знаю, делаю ли я что-то неправильно, или этот пример вообще поддерживается, поскольку не было найдено документации, описывающей «расширенный» атрибут карты, и моим последним средством на данный момент будет просмотр источников.