2016-09-02 6 views
1

Я хочу использовать Map<enum, List<Integer>> в gwt RequestFactory. (Я использую gwt-2.7.0)gwt RequestFactory Карта, содержащая список

В соответствии с latest documentation (который по-прежнему выглядит для версии 2.7.0) это должно сработать.

Map where K and V are transportable types

и К (перечислению) и V является транспортабельного типа.

Однако, когда я бегу RequestFactory ValidationTool, я получаю следующее сообщение об ошибке:

The type java.util.Map<com.example.MyEnum ,java.util.List<java.lang.Integer>> cannot be used here 

Примечание, Map<enum, Integer> работает.

Я пропустил что-то здесь или это просто невозможно?

Я не мог найти ответы на google, кроме старых версий, поскольку Карты вообще не поддерживались. Я не могу поверить, что никто другой не имел этой проблемы, так как они вводили Карты.

Любые обходные пути или мне действительно нужно обернуть эту карту?

+1

ли работа с 'Map >'? Вы можете попробовать, вызвав 'enum.name()', чтобы получить ключ. – Baz

+0

@Baz nope, также не работает: 'error: Тип java.util.Map > здесь не может использоваться –

+1

[This] (https://groups.google.com/forum/#!topic/google-web-toolkit/aLcp95-jhcI) кажется связанным и, кажется, предполагает, что: _ «вложенные параметризованные типы все еще не поддерживаются» _ – Baz

ответ

1

Это все еще не поддерживается. В GitHub есть открытый выпуск:

RequestFactory support for nested parameterizations.

Комментарии предлагают оборачивать ваш внутренний тип в POJO:

public class MyObject { 
    private List<Integer> list; 
} 

и используя

Map<MyEnum, MyObject>