Как я могу динамически получить доступ к свойству объекта Java в GWT?

Используя GWT, у меня есть класс Java:

public class Pojo {
  private String name;
  public String getName() { return name; }
  public void setName(String name) { this.name = name; }
}

Вышеупомянутый класс является общим для клиентского и серверного кода.

Из клиентского кода я хотел бы получить динамический доступ к свойству , То есть я хотел бы написать метод со следующей сигнатурой:

public String getProperty(Object o, String propertyName)

такой, чтобы работал следующий код:

Pojo pojo = new Pojo();
pojo.setName("Joe");
getProperty(pojo, "name");    // this should return "Joe"

Отражение Java явно отсутствует. И я попробовал следующий метод JSNI:

public static native String getProperty(Object o, String name) /*-{
  return o[name];
}-*/;

Но это не работает.

Специальный синтаксис для доступа к объектам Java из JavaScript также нельзя использовать, так как я хочу, чтобы это было динамическим.

Есть какие-нибудь идеи о том, как я могу это сделать?

Для полноты я также хочу иметь возможность динамически устанавливать свойство.

РЕДАКТИРОВАТЬ: ответ blwy10 был отличным советом, чтобы заставить меня искать с помощью " GWT отражение "вместо того, чтобы с терминами, как" Я углубился в Windows API и обнаружил, что есть намного лучший и более простой способ, поэтому я хотел опубликовать его здесь, чтобы другие могли его найти.

Как скрыть (и показать) окно консоли, связанное с моим собственное консольное приложение C #?

177
задан Timwi 26 August 2010 в 02:19
поделиться

1 ответ

Вот как:

using System.Runtime.InteropServices;

[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;

var handle = GetConsoleWindow();

// Hide
ShowWindow(handle, SW_HIDE);

// Show
ShowWindow(handle, SW_SHOW);
244
ответ дан 23 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: