import java.util.*;
//在定义类时,就可以确定它的泛型。针对于这道题,可以直接确定泛型类型为String。
//不过,不确定时,可以写成: Fanshe<T>, 而创建引用时,也有也类的泛型一致。
class Steck<String> {
private LinkedList<String> link;
Steck() {
link = new LinkedList<String>();
}
//添加第一个,因为,你已经确定添加字符串类型了。所以,这里可以直接传入字符串类型的。
public void myAdd(String str) {
link.addFirst(str);
}
//得到集合中第一元素的方法。
public Object myGet() {
return link.removeFirst();
}
//返回空
public boolean isNull() {
return link.isEmpty();
}
}
class TestSteck {
public static void main(String[] args) {
//在这里创建类对象时,就传入了真正的类的泛型类型。
//这样java虚拟机在编译时,就不会提示安全问题了。这个泛型在1.5版本后,就出现了。
Steck<String> s = new Steck<String>(); //创建了类的对象。就会调用了无参的构造函数,返回的是一个new LinkedList<String>();
s.myAdd("java01");
s.myAdd("java02");
s.myAdd("java03");
s.myAdd("java04");
//判断如果不为空,就循环调用得到数组中每一个的元素。
while (!s.isNull()) {
sop(s.myGet());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
打印结果如图:
|