0
我有:通用阵列铸造
List<WatchEvent.Kind<Path>> events_kinds = new ArrayList<>();
events_kinds.add(StandardWatchEventKinds.ENTRY_DELETE);
events_kinds.add(StandardWatchEventKinds.ENTRY_CREATE);
events_kinds.add(StandardWatchEventKinds.ENTRY_MODIFY);
比我想用register
方法接受作为第二个参数 一个Kinds<?>[]
类型,所以我做的:
WatchKey key = path.register(watch_service, (WatchEvent.Kind<Path>[]) events_kinds.toArray());
但是当我执行代码我有以下例外:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.nio.file.WatchEvent$Kind;
现在怎么样我可以从列表中获得一个Kinds<?>[]
数组吗?
谢谢。
不应它是'WatchEvent.Kind [] eventsArray = events_kinds.toArray(新WatchEvent.Kind [events_kinds.size()]);'? –
@Aditya +1不是绝对必要的,但一个更好的方法,谢谢你的修正 –
@Shivan非常感谢它的工作! – xdevel2000