2014-02-26 58 views
1

我有一個使用泛型的ArrayStack類。在另一個類中,我使用這個ArrayStack來接受Strings。當我調用pop()方法時,Stack將返回頂層對象。說我遇到的問題是,當我嘗試這樣做:使用ArrayStack ADT與字符串併發症(Java)

//temp is a String 
//tempStack is an ArrayStack<String> 
temp = tempStack.pop(); 

我得到以下錯誤:

incompatible type 
required: java.lang.String 
found: java.lang.Object 

我怎樣才能讓我的編譯器知道pop()方法返回一個字符串在這個實例?

回答

2

你是如何實例化的tempStack?它應該是這樣的:

ArrayStack<String> tempStack = new ArrayStack<String>(); 

而且pop()方法應該返回泛型類型:

public T pop() { 
    // implementation details 
} 
+0

我寫道: ArrayStack tempStack =新ArrayStack (); 應該是這樣。謝謝! – user2997154

+0

@ user2997154不客氣!並小心編譯器的消息,這肯定會被報告爲警告 –