问题描述
- java中修饰方法的一个泛型指定为一个类问题
-
java中修饰方法的一个泛型指定为一个类,那么这个方法的返回类型肯定就是这个类的对象,那返回的是这个类的子类的对象可以吗?
解决方案
可以的,但是在接收到参数进行处理的时候,是需要注意的。给你举个例子:
public static void main(String[] args) {
int int1 = (Integer) getInt();//正确
int int2 = (Integer) getInt2();//报错 java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
String str = (String) getString();//正确
Date date = (Date) getDate();//正确
System.out.println(int1);
System.out.println(int2);
System.out.println(str);
System.out.println(date);
}
public static Object getInt(){
return 1;
}
public static Object getString(){
return "abc";
}
public static Object getInt2(){
return "";
}
public static Object getDate(){
return new Date();
}
解决方案二:
派生类天然也是这个类型。比如返回object类型,当然你也可以返回int string等。
解决方案三:
可以,不过自动向上转型了。
时间: 2024-10-30 04:28:05