我首先定义了一个包括泛型的接口如下:publicinterfaceNewClass{publicvoidprint(Tv);}再写一个类实现上述接口:publicclassNewClass1implementsNewClass{privateenumweek{monday,tu...
我首先定义了一个包括泛型的接口如下:
public interface NewClass {
public void print(T v);
}
再写一个类实现上述接口:
public class NewClass1 implements NewClass{
private enum week{monday,tuesday,wednsday}
private enum year{January,February,March}
public void print(week v) {
switch(v){//出错
case monday:....//也错
}
}
public void print(year v) {
switch(v){//出错
case January:....//也错
}
}
}
我想写一个泛型接口,针对多种枚举类型的问题,如week,year等,进行不同的调用,但是这样却不可以,我是不是犯了基本概念的错误?请指教。
我的主要问题是"如何用泛型实现枚举类型的'泛'".首先感谢两位大师级人物给我的答复.
我在代码中写了两个枚举week和year,是想说明使用泛型的必要性,这使得liushebiao理解成两次OverLoad了,这怨我,没有把意思说清楚。
经过思考,我实现了上述implements,用了一个类型强制转换,但这明显与“泛型”的宗旨相违背了。代码如下:
public class NewClass1 implements NewClass {
private enum week {monday, tuesday }
public void print(Object v) {
week a = (week) v;
switch (a) {
case tuesday: System.out.println("Tuesday");break;
case monday: System.out.println("monday");break;
default: System.out.println("Still not supported");
}
}
public static void main(String[] args) {
NewClass1 nc = new NewClass1();
for (week w : week.values()) {
nc.print(w);
}
}
}
展开