Bonjour tout le monde,
Existe t'il un moyen de savoir si une variable est un tableau(pas une liste) ou pas?
Merci ce votre aide.
Bonjour tout le monde,
Existe t'il un moyen de savoir si une variable est un tableau(pas une liste) ou pas?
Merci ce votre aide.
Oui avec isArray de la class Class.
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Ou par instanceof...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 public class TestArray { public static void main(String[] args) { String[] stringArray = {"A","B","C"}; int[] intArray = {42,1337}; Object array1 = stringArray; Object array2 = intArray; var object = new Object(); System.out.println("array 1 par objet: " + isArray(array1)); System.out.println("array 1 par objet instanceof int[]: " + isArrayOfInt(array1)); System.out.println("array 2 par objet: " + isArray(array2)); System.out.println("array 2 par objet instanceof int[]: " + isArrayOfInt(array2)); System.out.println("object par objet: " + isArray(object)); System.out.println("object par objet instanceof int[]: " + isArrayOfInt(object)); System.out.println("array 1 par classe: " + isArrayClass(array1.getClass())); System.out.println("array 1 par classe: Object.class " + isArrayClass(array1.getClass(), Object.class)); System.out.println("array 1 par classe: int.class " + isArrayClass(array1.getClass(), int.class)); System.out.println("array 2 par classe: " + isArrayClass(array2.getClass())); System.out.println("array 2 par classe: Object.class " + isArrayClass(array2.getClass(), Object.class)); System.out.println("array 2 par classe: int.class " + isArrayClass(array2.getClass(), int.class)); System.out.println("object par classe: " + isArrayClass(object.getClass())); } private static boolean isArray(Object obj) { return obj instanceof Object[]; } private static boolean isArrayOfInt(Object obj) { return obj instanceof int[]; } private static boolean isArrayClass(Class<?> k) { return k.isArray(); } private static boolean isArrayClass(Class<?> k, Class<?> ct) { return k.isArray() && ct.isAssignableFrom(k.getComponentType()); } }array 1 par objet: true
array 1 par objet instanceof int[]: false
array 2 par objet: false
array 2 par objet instanceof int[]: true
object par objet: false
object par objet instanceof int[]: false
array 1 par classe: true
array 1 par classe: Object.class true
array 1 par classe: int.class false
array 2 par classe: true
array 2 par classe: Object.class false
array 2 par classe: int.class true
object par classe: false
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Partager