当前位置: 代码迷 >> J2EE >> 如何编一个返回任意类型的函数
  详细解决方案

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

热度:252   发布时间:2016-04-22 02:28:56.0
怎么编一个返回任意类型的函数
我想用这种方法
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();
  
}
}
  相关解决方案