Я бы сказал, что весь смысл Generics заключается в том, что он этого не позволяет. Рассмотрим ситуацию с массивами, которые допускают такой тип ковариации:
Object[] objects = new String[10];
objects[0] = Boolean.FALSE;
Этот код компилируется отлично, но выдает ошибку во время выполнения (java.lang.ArrayStoreException: java.lang.Boolean
во второй строке). Это не типично. Пункт Generics заключается в добавлении безопасности типа времени компиляции, иначе вы можете просто придерживаться простого класса без дженериков.
Теперь есть моменты, когда вам нужно быть более гибкими, и это то, что ? super Class
и ? extends Class
для. Первый - когда вам нужно вставить тип Collection
(например), а последний - для того, когда вам нужно прочитать его, безопасным типом. Но единственный способ сделать это одновременно - это иметь определенный тип.
Нет, вам нужен драйвер фильтра файловой системы для отслеживания изменений с такими деталями.
Negative. Единственная информация, которую вы будете иметь, это данные, содержащиеся в классе FileSystemEventArgs
, зарегистрированные здесь здесь .
Это означает, что вы получаете только тот тип изменений, который был сделан, а также путь к файлу, который был изменен.