2009-07-01 2 views
4

У меня есть класс, который я хочу включить в модуль GWT. К сожалению, у него есть метод, который не поддерживает функции GWT (он использует Class.isInstance в случае, если вам интересно). Я не использую этот метод в своем приложении GWT, но другие приложения, отличные от GWT, используют этот метод, поэтому я не могу просто удалить его. Есть ли способ исключить этот метод в моем определении модуля? Возможно, аннотация по методу может сделать это?Исключение методов из модулей GWT

ответ

3

В компиляторе GWT нет функциональности, позволяющей это сделать. Это подробно обсуждалось на форумах GWT, но они решили не применять его по очень веским причинам.

Ваш единственный вариант (поскольку вы не можете изменить объект для удаления этого метода) заключается в создании объекта переноса, который вы используете вместо объекта, который не компилируется под GWT.

+0

Да, похоже, это так. Я создал этот объект передачи. Спасибо за быстрый ответ. – P4ndaman

+0

Как забавно, как GWT может поддерживать подмножество функций в классе библиотеки, но пользователи не могут делать это для своих собственных классов. – P4ndaman

0

Другой вариант - использовать супер-источник. Вы можете создать дубликат своего класса. Такой класс будет точной копией минус методы, которые вы хотите исключить. Затем добавьте директиву суперпользователя, чтобы включить этот дублирующий класс.

Недостатком этого является то, что вы нарушите принцип не повторяться (DRY). Также важно понимать, что в режиме хостинга будет вызван фактический класс, а не супер-источник.

Смежные вопросы