2010-11-22 11 views

答えて

18

確かに、instanceof operatorを使用します。

など
if (x instanceof String) { 
    ... 
} 

if (x instanceof String[]) { 
    ... 
} 

それは、これを実行する必要が理想的ではないですが、あなたの心...あなたがこれを避けるために、あなたのAPIを再設計することができどのような方法はありますか?

+2

なぜそれは理想的ではありませんか? – Konerak

+3

オブジェクトの向きの問題が原因です。 'instanceof'を使用するという事実は、この場合、「私のメソッドはすべての場合に' String [] 'を返すことができます(' String'は常に 'String [1]'に入れることができるので)しかし、私はそれを行うには十分スマートではなかったので、私は何かを返すようにして、あなたがそれに対処することをお勧めします。 – Riduidel

+1

APIを変更する最も簡単な方法は、String []の代わりにString []を返すことです。 – extraneon

7

1つしかない場合でも、常にString[]を返すようにメソッドを書き換えます。

さらに、List<String>を返し、単一要素の場合はCollections.singletonList()を使用してください。

関連する問題