这段Java代码怎么加泛型,本人Java刚起步,望大神指点。

import java.util.* ;

public class testdemo {
static void showpush (Stack st, int a) {
st.push(a) ;
System.out.println("入栈(" + a + ")") ;
System.out.println("Stack:" + st) ;
}
static void showpop (Stack st) {
System.out.print("出栈 -> ") ;
Integer a = (Integer) st.pop() ;
System.out.println(a) ;
System.out.println("Stack:" + st) ;
}

    public static void main(String args[]) {
            Stack st = new Stack () ;
            System.out.println("Stack:" + st) ;
            showpush(st, 42) ;
            showpush(st, 66) ;
            showpush(st, 99) ;
            showpop(st) ;
            showpop(st) ;
            showpop(st) ;
            try {
                    showpop(st) ;
                }
            catch (EmptyStackException e) {
                    System.out.println("出现异常:栈中内容为空") ;
                }
        }       
}

4个回答

import java.util.* ;

public class Test {

    static<T> void showpush (Stack<T> st, T a) {
        st.push(a) ;
        System.out.println("入栈(" + a + ")") ;
        System.out.println("Stack:" + st) ;
    }
    static<T> void showpop (Stack<T> st) {
        System.out.print("出栈 -> ") ;
        T a = (T) st.pop() ;
        System.out.println(a) ;
        System.out.println("Stack:" + st) ;
    }
    public static void main(String args[]) {
        //Stack<Integer> st = new Stack<Integer>() ;
        Stack<String> st = new Stack<String>() ; //使用Stack<String> 则必须传入String
        System.out.println("Stack:" + st) ;
        /*showpush(st, 42) ;
        showpush(st, 66) ;
        showpush(st, 99) ;*/
        showpush(st, "42") ;
        showpush(st, "66") ;
        showpush(st, "99") ;
        showpop(st) ;
        showpop(st) ;
        showpop(st) ;
        try {
            showpop(st) ;
        }
        catch (EmptyStackException e) {
            System.out.println("出现异常:栈中内容为空") ;
        }
    }       
}

直接给方法加泛型即可,

space_Home
space_Home 回复谭世霖: 谢谢了,已经知道了
3 年多之前 回复
qq_35559756
Tristan.L 回复space_Home: 额,刚没看清题,你想在哪里加泛型呢?
3 年多之前 回复
space_Home
space_Home 直接在showpush方法前加<Stack, Integer>和在showpop方法前加<Stack>吗???这样编译还是出错啊,怎么回事???
3 年多之前 回复
 Stack修改为Stack<T>
而T可以参数化成某个类型,这里为Integet
立即提问