Краткий ответ : Ваш Module
уже использует WebAssembly.instantiateStreaming()
за кулисами.
Длинный ответ : Emscripten (emcc
) - это не только компилятор, но и целая инфраструктура цепочки инструментов. Когда вы используете команду emcc
, emcc
вызывает компилятор clang
для компиляции вашего кода C в WASM, связывает необходимый JS-код для использования в WASM, используя import , и генерирует ] шаблонный JS-код (он называется preamble.js) для создания экземпляра кода WASM для Module
, чтобы разработчикам не нужно было писать собственный код для написания кода начальной загрузки .
Посмотрите на свой код glue.js
. Вы можете найти строку, которая использует WebAssembly.instantiateStreaming()
. Если вы не используете emcc
без опции -s SIDE_MODULE=1
, он всегда генерирует код preamble.js для вас. Поэтому обычно вам не нужно самостоятельно использовать WebAssembly
.
Некоторые продвинутые пользователи не хотят этого большого шаблона и используют WASM более жестко, например, используя clang без emcc. Затем они должны использовать WebAssembly
, включая instantiateStreaming()
, сами.
Я постарался бы не скрывать другую переменную путем выбора имени кроме x.
Простой ответ к не тень переменные:
public static void main(String[] args) {
Comparable c1 = new Comparable() {
int x = 3;
public int compareTo(Object o) {
Comparable c2 = new Comparable() {
//changed this name
int y = 4;
public int compareTo(Object o) {
return x;
}
};
return c2.compareTo(o);
}
};
System.out.println(c1.compareTo(null));
}
Вывод:
3
Учитывая, что Вы работаете со сгенерированным кодом, действительно ли это - опция для Вас?
AFAIK там не является никаким способом достигнуть того, что Вы хотите. Если можно изменить код (поскольку Вы, кажется, можете к), но не хотят изменять их в именованные классы, можно ли просто изменить имя переменных, таким образом, у Вас нет проблем объема? Необходимо переименовать их для ясности так или иначе
Классы являются анонимными - неназванный. Никакой способ получить доступ к их полям с помощью ссылки имени. Нет никакого имени.
Я полагаю, что необходимо будет объявить полевой финал - код, у Вас есть там компиляции только из-за затенения, на которое Вы жалуетесь.Не верно.
Это похоже на классический случай, где что-то как gensym Lisp сделает вещи легче. Другими словами, имейте различные идентификаторы использования генератора кода для тех переменных - например, x1 и x2.