Java. Generics. Wildcards
1. Зачем нужны дженерики Дженерики появились в Java в версии 1.5, для того, чтобы исключить неверную типизацию. Пример, до Java 1.5, были raw types (сырые типы) . В данном примере objects - это raw type: List objects = new ArrayList(); objects.add( "1" ); objects.add( "2" ); objects.add( "3" ); objects.add( "4" ); objects.add( "5" ); String s0 = (String) objects.get( 0 ); String s1 = (String) objects.get( 1 ); String s2 = (String) objects.get( 2 ); String s3 = (String) objects.get( 3 ); String s4 = (String) objects.get( 4 ); Тут все работает верно и ошибок нет, т.к. мы в массив List добавляем String. Но что будет если мы ошибемся и добавим не строку "4", а число 4: List objects = new ArrayList(); objects.add( "1" ); objects.add( "2" ); objects.add( "3" ); objects.add( 4 ); //тут наша ошибка objects.add( "5" ); String s0 = (String) objects.get( 0 ); String s1 = (String) objects.get( 1 )...