public class G<x> {
x i;
}
public class E {
public static void main(String[] args) {
G<Integer> b1 = new G<Integer>();
G<String> b2 = new G<String>();
b1.i = 50;
b2.i = "start";
System.out.println(b1.i);
System.out.println(b2.i);
}
}
Как этот случай отличается от другого случая приведенного нижепередавая аргумент типа к дженериков
public class G<x> {
x i;
}
public class E {
public static void main(String[] args) {
G b1 = new G();
G b2 = new G();
b1.i = 50;
b2.i = "start";
System.out.println(b1.i);
System.out.println(b2.i);
}
}
Я знаю Пока вы делаете Объект G класса мы должны определить тип аргумента для generics, но не передавая аргумент типа, он будет работать. Будет показан вывод. Итак, почему мой учитель говорит, что аргумент типа важен, хотя код будет работать и без него.
В обоих случаях есть разница. В первом случае мы передаем аргумент целочисленного типа через ссылочную переменную b1 и аргумент типа String через ссылочную переменную b2, но во втором случае мы этого не делаем. И, не делая этого Во втором случае тип данных будет типом объекта. Оба кода дадут вам один и тот же ответ, но мой учитель говорит, что вам нужно всегда использовать один случай. Так что мой вопрос объясняется тем, почему он так сказал, потому что оба кода дадут вам один и тот же ответ, поэтому почему мы не используем 2 случая
этот код отличается от моего. В вашем коде строка 2 даст ошибку, но в моем случае вы не найдете никаких ошибок и exceptio при запуске кода – user2461149
Еще одна вещь G b2 = new G (); , сделав это, вы получите результат. что будет эта строка b1.i = "start" .toCharArray(); дать результат и почему –
user2461149