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.
Version imprimable
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.
Ou par instanceof...
Code:
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()); } }
Citation:
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