Да, это возможно. Но я бы не рекомендовал это делать. Вот почему:
Краткий ответ:
MyGeneric mg = new MyGeneric();
такой же как
MyGeneric<Object> mg = new MyGeneric<>();
Длинный ответ:
ArrayList a = new ArrayList();
a.add("somestring");
a.add(15);
a.add(new ArrayList());
a.add(new Button());
for(int i = 0; i < a.size(); i++){
System.out.println(a.get(i).getClass());
}
вывод:
класс java.lang.String
класс java.lang.Integer
класс java.util.ArrayList
класс java.awt. Кнопка
Теперь вы можете положить что угодно. это потому, что он автоматически устанавливает тип объекта. Чтобы использовать, например, Методы класса String на объекте, вам нужно сначала привести его к String.
Если вы установите тип списка массивов, например, Строка (ArrayList<String> a = new ArrayList<>();
), вам не разрешено помещать только что-нибудь, что расширяет Obejct (что означает буквально что угодно) на ваш контейнер.