读书人

如何编一个返回任意类型的函数

发布时间: 2012-03-05 11:54:03 作者: rapoo

怎么编一个返回任意类型的函数
我想用这种方法
class test<V>
{

public V put(int i)
{
return (V)new Integer(i);


}
}
但是警告类型转换不安全 我想半天也没想出别的方法 改一下或者写一个简单的方法
不要写一大堆可有可无的代码 写主要的!!!!!

问题二 (请主要回答第一个问题)
我就在这问一下就不去百度了
public int get()
{
if(...)
{
return ..
}
else if()
{
return ..
}
}
不好使 原因大概是不能放在if(){}中
那该怎么办


[解决办法]
Object 是最顶级父类,返回类型设置成它: 如需要转换成其他类型,判断后强转
[解决办法]

探讨

Object 是最顶级父类,返回类型设置成它: 如需要转换成其他类型,判断后强转

[解决办法]
class test
{

public Object put(int i)
{
return new Integer(i);
}

public void test() {
Object o = put(1);
if(o instanceof Integer) Integer i = (Integer)o;
}
}

[解决办法]
支持三楼
[解决办法]
Java code
public int get(){  if(...)  {  return ..  }  else if()  {  return ..  }  return ... //add this line out of all if statement. return some int when all condition is not matched.}
[解决办法]
Java code
public class Conversion<T>{     //设置对象      private Class<T> object;          //指定对象     public Conversion(){          this.object=object;     }     //返回对象      public <T> T newInstance(){           return (T)object.newInstance();     }}
[解决办法]
问题1,你那个不是返回任意类型,只返回Integer类型
问题2,当不满足if和else if时,方法就没有返回值了

[解决办法]
探讨

Object 是最顶级父类,返回类型设置成它: 如需要转换成其他类型,判断后强转

[解决办法]
使用泛型,把你要返回的类型作为一个参数传到方法中,然后返回类型根据传的参数返回。
[解决办法]
因为你返回的是个Integer对象,并非任意类型,所以,强行转换肯定在某些情况下会出错
可以试试
class test<V>
{

public V put(int i, Class<T> c)
{
//return (V)new Integer(i);
return (V)c.newInstance();

}
}

读书人网 >J2EE开发

热点推荐