问题描述
我在标题中输入的代码无法编译。它说:system("rm DIRECTORY/*.html;rm DIRECTORY/*.png")
。
之后,我做了Cannot infer arguments
,它可以很好地进行编译。我的错误是什么,所以我下次可以避免吗?
是的,我知道BlockingQueue<Integer> a = new PriorityBlockingQueue<>(2);
界面中的构造函数具有用于初始容量的参数(2),而在Queue
中,参数(2)表示最大元素。这与错误有关吗?
解决方法
对于初学者来说,PriorityQueue
不是BlockingQueue
。由于没有有效的PriorityQueue<T>
,因此无法推断T
的任何通用参数。话虽如此,Cannot infer arguments
听起来可能是由于此更改在代码中其他地方的副作用所致。
查看documentation中的BlockingQueue
,您应该改用“所有已知的实现类:”下的类之一,找到带有BlockingQueue
s的库,或者实现自己的库
您的另一选择是改为使用另一种队列,例如AbstractQueue<Integer>
代替BlockingQueue<Integer>
。
由于PriorityQueue
未实现也不扩展BlockingQueue
,因此标题中的代码无法编译。就像这样做:LinkedList<Integer> ls = new ArrayList<>():
,它将不会编译。