日期:2014-05-20  浏览次数:20882 次

怎么编一个返回任意类型的函数
我想用这种方法
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();
  
}
}