Компилятор GWT моделирует иерархию типов Java, используя цепочки прототипов JavaScript .Символ _
используется в качестве глобальной временной переменной компилятором и короткими методами JSNI.В верхней области сгенерированного сценария вы должны увидеть что-то вроде
// Define the JS constructor(s) for the type
function com___GwtEvent() {}
// Inherit methods from the supertype by prototype chain
_ = com___GwtEvent.prototype = new java_lang_Object;
// Attach polymorphically-dispatched methods to the new type
_.someInstanceMethod = function(a,b,c){.....}
// Static-dispatch methods
function $someOtherMethod(this$static, d, e) {...}
. Где вы видите методы, имеющие параметр this$static
, компилятор пришел к выводу, что выражение Java instance.someOtherMethod()
не является полиморфным (возможно с помощью сжатия типа) и позволяет избежать издержек при поиске промежуточного символа во время выполнения.