Determinando se um Object é um array

3 respostas
X
Tenho um método que recebe um argumento do tipo Object


  Em alguns casos específicos, esse parâmetro pode ser um vetor, e tenho que testar essa possibilidade A única forma que conheço de testar é usando, por exemplo:


  Object teste = new byte[3];


  if (teste.getClass().isArray()) System.out.println("Eh um vetor!");


  Essa é a única forma? Eu implementei assim, mas sinceramente não tenho muito orgulho disso <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pnglight_smile.png?v=9" title=":slight_smile:" class="emoji" alt=":slight_smile:">

3 Respostas

B

Não sei se tem outra forma, mas eu me orgulharia dessa aí… :slight_smile:

Afinal, você está usando o objeto (Class) e o método (isArray()) que servem precisamente para responder esta sua pergunta.

X

Não sei se é a única maneira de testar isso… se quero saber se um Object é uma String, não uso reflection, mas faço o seguinte:

obj instanceof String

Não deveria ter algo parecido para arrays?

F

Olá,



tbm não vejo problema algum na maneira como vc tá fazendo.

Eu ia sugerir usar alguma implementação da Collection, ao invés de array e a seguir usar "instance of" mas, pelo visto não é o que vc quer.

Criado 13 de janeiro de 2003
Ultima resposta 14 de jan. de 2003
Respostas 3
Participantes 3