这段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("出现异常:栈中内容为空") ;
}
}
}
答
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("出现异常:栈中内容为空") ;
}
}
}
答
直接给方法加泛型即可,
答
Stack修改为Stack<T>
而T可以参数化成某个类型,这里为Integet