アカウント名:
パスワード:
リフレクションを使えば、ってのがあまりリフレクションを使ったことがなくてピンとこなかったので、添削してもらうつもりで。
String ret;Class clazz = KeyEvent.class;Field[] fields = clazz.getFields();for (Field field : fields) { try { if (keyCode == field.get(null)) { ret = field.getName(); } } catch (Exception e) { }}
こんな感じ?或いは、今ならJava8だからlambdaで
Class clazz = KeyEvent.class;List fields = Arrays.asList(clazz.getFields());String ret = fields.stream().filter(field -> { try { return keyCode == field.get(null); } catch (Exception e) { return false; }}).findAny().get().getName();
こうとか?Field型の中身を取ってくるのに例外処理を書かなきゃいけなくて、全然簡潔にならなかったけど・・・。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
文句を言う資格のある奴はより良い案を出した奴だけだ。 (スコア:2)
Re:文句を言う資格のある奴はより良い案を出した奴だけだ。 (スコア:1)
リフレクションを使えば、ってのがあまりリフレクションを使ったことがなくてピンとこなかったので、添削してもらうつもりで。
String ret;
Class clazz = KeyEvent.class;
Field[] fields = clazz.getFields();
for (Field field : fields) {
try {
if (keyCode == field.get(null)) {
ret = field.getName();
}
} catch (Exception e) {
}
}
こんな感じ?或いは、今ならJava8だからlambdaで
Class clazz = KeyEvent.class;
List fields = Arrays.asList(clazz.getFields());
String ret = fields.stream().filter(field -> {
try {
return keyCode == field.get(null);
} catch (Exception e) {
return false;
}
}).findAny().get().getName();
こうとか?
Field型の中身を取ってくるのに例外処理を書かなきゃいけなくて、全然簡潔にならなかったけど・・・。