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。括弧も少ないし。でもうろ覚えです。間違ってたらごめんなさい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください