Ich stieß auf diesen Abschnitt der kommentierten Code auf StackOverflow. Es wird eine Laufzeitausnahme ausgelöst. Der zweite Teil (der nicht kommentierte Abschnitt) wird funktionieren. Ich bin nicht in der Lage, den Unterschied zwischen den beiden zu finden, da beide Methoden Arrays von Objekten zurückgeben. Vielleicht fehlt mir ein grundlegendes Verständnis. Kannst du mir bitte helfen?Array von Strings vs Array von Objekten Java
public class Safevarargs {
/*
static <Object> Object[] asArray(Object... args) {
return args;
}
static <Object> Object[] arrayOfTwo(Object a, Object b) {
return asArray(a, b);
}
public static void main(String[] args) {
String[] bar = arrayOfTwo("hi", "mom");
}
*/
static <Object> Object[] display(Object... args) {
return args;
}
public static void main(String[] args) {
String[] str = display("hi", "mom");
System.out.print(str[0]);
}
}
Was ist die Ausnahme? – Jens
Es ist EXTREM schlecht, einen Namen wie 'Object' für eine generische Typvariable zu verwenden. –
Sie haben einige unnötige Wiederholung. Es gibt keine Möglichkeit, 'AsArray' ist fehlerhaft, aber nicht' display'. – ChiefTwoPencils