2014-03-27 18 views
0
import java.util.Arrays; 

public class DropoutStack<T extends ArrayStack> { 
private final static int DEFAULT_CAPACITY = 100; 

private int top; 
private T[] stack; 

public DropoutStack() 
{ 
    this(DEFAULT_CAPACITY); 
} 


public void push(T element) 
{ 

    stack[top] = element; 
    top = (top + 1 % stack.length); 
} 

}試圖建立一個輟學堆棧類,這是我的ArrayStack類的子類

,我發現了錯誤:類DropoutStack構造DropoutStack不能應用於給定類型;

這裏是測試人員。

public class StackTester{ 
@SuppressWarnings("unchecked") 
public static void main(String[] args){ 

    DropoutStack stack = new DropoutStack(2); 
    stack.push("test1"); 
    stack.push("test2"); 
    stack.push("test3"); 

    System.out.println(stack); 
} 

}

+0

是你的問題解決了..?如果這個職位解決不要忘記標記爲接受.. – Siva

回答

0

你必須定義一個更parametirized構造如下

public DropoutStack(int capacity) 
{ 
    // Do Logic 
} 

退房Using this with a Constructor

+0

現在在我的測試我收到錯誤:方法推在類DropoutStack 不能適用於給定的類型; – user3435566

+0

請張貼您的測試人員代碼 – Siva

+1

@ user3435566:它不會編譯,因爲您聲明T必須是ArrayStack類型,但是您將字符串傳遞給推送方法... –