Cだと、デバッグログのためにこういうことをしばしば行う。
=======================
typedef enum {
ERR1,
ERR2,
....
} ErrType;
const char *getErrString(ErrType err)
{
switch (err) {
case ERR1: return "ERR1";
case ERR2: return "ERR2";
....
}
=======================
面倒だから、そのままint値で出力することもあるのだけど、数字だと検索しにくいし読みづらいので、変換するのだ。
久々にAndroidアプリを作ろうとしていて、似たような状況が発生した。
enumもオブジェクトだから、こういう関数を作らずにメソッドにしてしまうか。。。
そういえば、リフレクションとかいう、メソッド名で逆引きして実行するような機能があったから、あんな感じで名前を引っ張れるのでは?
=======================
enum ErrType {
ERR1,
ERR2,
....
}
void xxx(ErrType err) {
...
Log.d(TAG, err.toString());
...
}
=======================
これでいけるんだ!
はぁ、さすが21世紀やねぇ。。。
j2objcじゃないけど、CをJavaっぽく置き換えてくれるツールはないだろうか。。。
コンパイルが通る必要はないのだけど、ちょっとやるたびにJavaだとどう書くのかがわからないのだ。
C to Java converter
これを使うと、少しはそれっぽくしてくれたのだが、うーん、期待通りではないな。
地道に覚えていくしかないか。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。