我創建了一個堆類,如下所示,我的目的是初始化堆棧中類型E的元素的大小。春天無法注入'java.lang.Class
應該怎麼注入這個類?
但是彈簧拋出如下錯誤,我該如何解決這個問題?在堆疊構造的
@Service
public class Stack<E> {
int MAX_SIZE = 15;
E[] elements;
@SuppressWarnings("unchecked")
Stack(Class<E> clazz) {
elements = (E[]) Array.newInstance(clazz, MAX_SIZE);
}
volatile int i;
public void push(E e) throws InterruptedException {
while (i > MAX_SIZE) {
Thread.currentThread().wait();
}
elements[i++] = e;
Thread.currentThread().notifyAll();
}
public E pop() throws InterruptedException {
while (i < 0) {
Thread.currentThread().wait();
}
Thread.currentThread().notifyAll();
return elements[i--];
}
}
參數0所需類型的bean的java.lang.Class中「不能被發現。
你可以添加你的bean配置文件。 – 2017-03-05 12:27:56
added @Autowired \t java.lang.Class clazz;導致空指針異常。如何通過構造函數注入? –
Curious
你爲什麼要重新發明輪子?使用LinkedBlockingDeque。順便說一句,即使你真的想要你自己的實現,它不應該擴展線程,它不應該需要一個類作爲參數。只需使用Object []來存儲元素。 –