Java, Delphi, Objective-Cそれぞれのクラスの調べ方
いまだにKinesis Countered Keyboardに慣れないRomlyです。
えーと、タイトルの通り、3つの言語でのインスタンスの型(クラス)のチェック方法と、ついでにキャストの書き方です。
unknownObjectというインスタンス変数と、TheClassというクラスがある場合。TheClassはtestという数値型のプロパティを持っているとして……
Java
if (unknownObject instanceof TheClass) { ((TheClass)unknownObject).test = 1; }
Delphi
if unknownObject is TheClass then begin TheClass(unknownObject).test := 1; end;
Objective-C
if ([unknownObject isKindOfClass:[TheClass class]]) { ((TheClass *)unknownObject).test = 1; }
新しい言語を覚え始めた時に必ずひっかかるのがこういう所で。間違いなくその方法はあるし、簡単なことなんだけど、単純にその言語を知らないがために書き方がわからない、みたいな。そういうのありませんか。僕だけですか。まあそれはいいんですけど。
特にこういう型のチェックなんて間違いなく使うのに言語によってずいぶん書き方違うじゃないですか。
それにしてもDelphiの文はかっこいいなー。beginですよbegin。括弧も少ないし。でもうろ覚えです。間違ってたらごめんなさい。