あなたは誰ですか?
JavaとC♯にはオブジェクトの型を調べる演算子があります。Javaでは"instanceof"、C♯では"is"という演算子がこれに該当します。例えばこのようにして使います。
void add(Component comp) { if (comp instanceof Label) { Label l = (Label)comp; : } else if (comp instanceof Button) { Button b = (Button)comp; : } }
BayGUIではこれを以下のようにして実現できます。
void add(Component* comp) { if (comp->instanceof(baygui_awt_Label)) { Label* l = (Label*)comp; : } else if (comp->instanceof(baygui_awt_Button)) { Button* b = (Button*)comp; : } }
以下のような使い方にも対応しています。
Label l; bool b = false; b = l.instanceof(baygui_awt_Label); // true b = l.instanceof(baygui_awt_Component); // true b = l.instanceof(baygui_lang_Object); // true b = l.instanceof(baygui_awt_Button); // false
ちなみに文字列の比較は以下のようにします。
String s = "hoge"; bool b = false; b = s.equals("hoge"); // true b = s.startsWith("ho"); // true b = s.endsWith("ge"); // true b = s.equals("fuga"); // false