Используя 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 #?
Вот как:
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);