java中一个方法的返回值可能是integer或者Double,请问该怎么定义泛型接收
java中一个方法的返回值可能是integer或者Double,请问该怎么定义泛型接收?谢谢!...
java中一个方法的返回值可能是integer或者Double,请问该怎么定义泛型接收?谢谢!
展开
3个回答
展开全部
泛型也做不到,泛型是用来推导一批函数,用不同的类型实例化出不同的函数,你得要求是,同一个函数,不同case的返回值类型不同,泛型不太适合你的需求。
泛型方法可类型如下定义:
public <T> T function(参数)
{
return ....;
}
T推导成何种类型,看如果调用
例如:
int i = function();//T = Integer
Object o = function();//T = Object
然而无论T为何种类型,推导之后的T都是唯一的,其实就是函数的返回值类型,是确定的。
从这个角度来说,设计上你这个想法是有问题的。
可以定义返回类型是Object,这样无论if else返回什么类型都能适用,不过还是再强调一下,这个不同case返回不同类型的设计,有点问题。
泛型方法可类型如下定义:
public <T> T function(参数)
{
return ....;
}
T推导成何种类型,看如果调用
例如:
int i = function();//T = Integer
Object o = function();//T = Object
然而无论T为何种类型,推导之后的T都是唯一的,其实就是函数的返回值类型,是确定的。
从这个角度来说,设计上你这个想法是有问题的。
可以定义返回类型是Object,这样无论if else返回什么类型都能适用,不过还是再强调一下,这个不同case返回不同类型的设计,有点问题。
展开全部
public class Test{
public static void main(String args[]){
Test test = new Test();
System.out.println(test.getNumber(11.23));
}
public <T> T getNumber(T t){
return t;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法返回值 一定确定吧? 不可能出现两种,Object可以接受
更多追问追答
追问
我的意思是lf else 里面,返回的结果类型是不同的,不想用object去接受,如果用泛型该怎么定义?
我的意思是lf else 里面,返回的结果类型是不同的,不想用object去接受,如果用泛型该怎么定义?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询