Eclipse显示了一个类型安全警告,我尝试了几乎所有东西来消除它(当然压制它将是一个选项)但不幸的是我没有任何成功.
你知道我如何更改我的代码,以便不再有类型安全警告.或者是@SuppressWarnings("unchecked")唯一的方法?
ArrayList<String> arrayList= (ArrayList<String>) Classname.getArrayList();
JSONArray obj = new JSONArray();
obj.addAll(arrayList);
Run Code Online (Sandbox Code Playgroud)
在显示类型安全警告的最后一行:
类型安全:方法addAll(Collection)属于原始类型ArrayList.应该参数化对泛型类型ArrayList的引用
JSONArray来自org.json.simple.JSONArray.你会推荐另一个套餐吗?
我有3个FutureTask<T>物体.我希望它们是异步处理的.但是,只要其中一个FutureTasks get()方法没有返回,null我想继续,即我的方法(包装器)返回,并且不等到处理其他两个FutureTasks.我想到了类似的东西:
private File wrapper(final File file) {
ExecutorService executors = Executors.newCachedThreadPool();
File returnFile;
FutureTask<File> normal= ...
FutureTask<File> medium=...
FutureTask<File> huge=...
executors.execute(normal);
executors.execute(medium);
executors.execute(huge);
try {
if((returnFile=normal.get()) != null ||
(returnFile=medium.get()) != null ||
(returnFile=huge.get()) != null)
return returnFile;
} catch(ExecutionException | InterruptedException e) { }
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何以正确的方式捕获异常(由get()抛出),因为我假设它们将被抛出,因为我只是返回而不等待其他两个任务完成.此外,我怀疑代码是否会像预期的那样工作.我觉得我接近解决方案但却遗漏了一些东西.