我想用这种方法
class test<V>
{public V put(int i)
   {
       return (V)new Integer(i);
   
   
   }
}
但是警告类型转换不安全  我想半天也没想出别的方法 改一下或者写一个简单的方法 
不要写一大堆可有可无的代码 写主要的!!!!!问题二 (请主要回答第一个问题)
我就在这问一下就不去百度了 
public int get()
{
     if(...)
   {
         return ..
   }
    else if()
   {
         return ..
   }
}
不好使 原因大概是不能放在if(){}中   
那该怎么办
 

解决方案 »

  1.   

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

  2.   

    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;
      }
    }
      

  3.   


    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.
    }
      

  4.   


    public class Conversion<T>{
         //设置对象
          private Class<T> object;
         
         //指定对象
         public Conversion(){
              this.object=object;
         }     //返回对象
          public <T> T newInstance(){
               return (T)object.newInstance();
         }
    }
      

  5.   

    问题1,你那个不是返回任意类型,只返回Integer类型
    问题2,当不满足if和else if时,方法就没有返回值了
      

  6.   

    感觉你这种方法 并不是我想要的 
    我想要一种方法 可以直接返回的 让他成为一个独立的方法比如你这种 我要是想用到o 那么就要先判断是不是Integer 而且还是void型方法 那他要用i 是不是就得设一个全局的i 感觉麻烦  那要是 String,Date,float......  那得设多少个呀
    我那个倒是可以 但是转回不安全可能根本不实用
    能不能再举一个更好的 谢谢了
      

  7.   

    因为你返回的是个Integer对象,并非任意类型,所以,强行转换肯定在某些情况下会出错
    可以试试
    class test<V>
    {public V put(int i, Class<T> c)
      {
      //return (V)new Integer(i);
      return (V)c.newInstance();  
      
      }
    }
      

  8.   

    <T> T get(Object innerClass){
        return (T) innerClass.newInstance;
    }