Sie int[] array
haben, das ist, wie der Bytecode aussieht:
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_2
1: newarray int
3: dup
4: iconst_0
5: bipush 97
7: iastore
8: dup
9: iconst_1
10: bipush 98
12: iastore
13: astore_1
14: return
}
Wie Sie sehen können, Werte eingefügt als int
.
Andere Benutzer haben vorgeschlagen, Object[] array
zu verwenden. Schauen Sie sich die Bytecode davon:
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_2
1: anewarray #2 // class java/lang/Object
4: dup
5: iconst_0
6: bipush 97
8: invokestatic #3 // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
11: aastore
12: dup
13: iconst_1
14: bipush 98
16: invokestatic #4 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
19: aastore
20: astore_1
21: return
}
Notiere die
// Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
Linie, die sagt, dass das Verfahren Character.valueOf
aufgerufen wird, so dass Sie den eigentlichen Charakter statt dessen int
Wert.
Ich kann mir keinen Weg vorstellen, dies zu tun. Was ist der Grund, warum Sie das tun möchten? Vielleicht sollten Sie einen anderen Ansatz verwenden? –
Ich bezweifle, dass es möglich ist. Kannst du 'List' stattdessen benutzen? – sidgate
Sobald die Werte im Array sind, sind sie ganze Zahlen. Es gibt keine Möglichkeit zu wissen, ob sie aus einem Zeichen oder einer regulären Ganzzahl stammen. – Berger