如何编一个返回任意类型的函数
怎么编一个返回任意类型的函数
我想用这种方法
class test<V>
{
public V put(int i)
{
return (V)new Integer(i);
}
}
但是警告类型转换不安全 我想半天也没想出别的方法 改一下或者写一个简单的方法
不要写一大堆可有可无的代码 写主要的!!!!!
问题二 (请主要回答第一个问题)
我就在这问一下就不去百度了
public int get()
{
if(...)
{
return ..
}
else if()
{
return ..
}
}
不好使 原因大概是不能放在if(){}中
那该怎么办
------解决方案--------------------
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;
}
}
------解决方案--------------------
支持三楼
------解决方案--------------------
我想用这种方法
class test<V>
{
public V put(int i)
{
return (V)new Integer(i);
}
}
但是警告类型转换不安全 我想半天也没想出别的方法 改一下或者写一个简单的方法
不要写一大堆可有可无的代码 写主要的!!!!!
问题二 (请主要回答第一个问题)
我就在这问一下就不去百度了
public int get()
{
if(...)
{
return ..
}
else if()
{
return ..
}
}
不好使 原因大概是不能放在if(){}中
那该怎么办
------解决方案--------------------
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时,方法就没有返回值了
------解决方案--------------------
------解决方案--------------------
使用泛型,把你要返回的类型作为一个参数传到方法中,然后返回类型根据传的参数返回。
------解决方案--------------------
因为你返回的是个Integer对象,并非任意类型,所以,强行转换肯定在某些情况下会出错
可以试试
class test<V>
{
public V put(int i, Class<T> c)
{
//return (V)new Integer(i);
return (V)c.newInstance();
}
}