心法领悟183:不用泛型的问题。
- 为了获取适当的值,必须进行强制类型转换。因为在保存数据时使用了Object类型的数组,丢失了对象的实际类型。
- 第二,没有进行错误检查。这意味着可以向该栈中存入任何类型的对象,如InputStream等。当转换成String时会在系统运行时报错。
package com.mingrisoft.generic;
public class Stack {
private Object[] container = new Object[10];
private int index = 0;
public void push(Object o) {
if (index != container.length) {
container[index++] = o;
}
}
public Object pop() {
if (index != -1) {
return container[--index];
}
return null;
}
public boolean empty() {
if (index == 0) {
return true;
} else {
return false;
}
}
}
package com.mingrisoft.generic;
public class StackTest {
public static void main(String[] args) {
Stack stack = new Stack();
System.out.println("向栈中增加字符串:");
System.out.println("视频学Java");
System.out.println("细说Java");
System.out.println("Java从入门到精通(第2版)");
stack.push("视频学Java");
stack.push("细说Java");
stack.push("Java从入门到精通(第2版)");
System.out.println("从栈中取出字符串:");
while (!stack.empty()) {
System.out.println((String) stack.pop());
}
}
}
运行结果:
向栈中增加字符串:
视频学Java
细说Java
Java从入门到精通(第2版)
从栈中取出字符串:
Java从入门到精通(第2版)
细说Java
视频学Java