2016-07-27 1 views
2

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

У меня есть класс, который возвращает мне композиты. Кроме того, у меня есть еще один, который хранит эти классы в Stack (я также пробовал Vector, я подумал, что, возможно, у GWT есть проблемы с ним). Это не имело значения. Если я называю .clear метод на стеке, я вышеупомянутую ошибку в меню инспекционного Chrome: неперехваченным TypeError: Не удается прочитать свойство «clear_31_g $» неопределенных

Как если GWT не знает, как конвертировать этот метод для javascript или что? Вы знаете, в чем проблема?

затмение неон, Java 7 установка на Java SDK 1.8 (возможно это?), GWT 2.7.0 и App Engine 1.9.34

Спасибо!

edit1: Я также нашел страницу, содержащую список эмулируемых классов JRE (http://www.gwtproject.org/doc/latest/RefJreEmulation.html) со всеми поддерживаемыми методами. Теперь я вижу, что в этом списке нет ясности, но пустое делает, и это дает мне ту же ошибку. : -/

+3

Вы вызываете метод 'clear' на' null'. – Adam

+0

Ах, джед, вот и все. Даже сообщение об ошибке является дескриптивным, но я просто не мог его увидеть. Благодаря! p.s. может быть, вы должны записать его в лист ответов, и я мог бы подтолкнуть его принять. – newhouse

+0

Хорошо, я отправил ответ. Надеюсь, это тоже поможет другим. – Adam

ответ

2

Эта ошибка просто означает, что вы пытаетесь вызвать метод clear() на объекте null (объект undefined).

Само сообщение об ошибке не так ясно, как могло бы быть. Во-первых, это не всегда о чтении свойства, но и о вызове метода. Во-вторых, помните, что вы запустили скомпилированный код javascript, а имя свойства (или метода) может отличаться от исходного: в нем есть что-то вроде _31_g$.

+0

«Во-первых, это не всегда о чтении свойства, но и о вызове метода», поэтому, если я вызываю метод, который находится в JavaSE для данного класса, но он не поддерживается эмуляцией JRE (http: // www.gwtproject.org/doc/latest/RefJreEmulation.html), то я бы получил ту же ошибку? И спасибо за помощь, в этом была проблема. – newhouse

+0

Я рад, что смог помочь :) И я имел в виду, что сообщение об ошибке может отличать обе ситуации и быть «Невозможно вызвать метод ... неопределенного» или «Невозможно прочитать свойство ... неопределенного». Если вы вызываете метод, не поддерживаемый эмуляцией JRE, вы получите такую ​​ошибку: 'Метод lineSeparator() не определен для ошибки типа System'. Если вы используете класс, который не находится в эмуляции JRE, вы получите 'Нет исходного кода для ошибки типа ... '(например, класс java.awt.Color). – Adam