protected Object get(Class clz,Serializable id){
try{
Object item=getSession().get(clz, id);
return item;
}catch(RuntimeException e){
e.printStackTrace();
}finally{
closeSession();
}
}这段代码为什么提示 必须返回一个Object类型对象。 在try中返回对象有什么需要注意的么?
try{
Object item=getSession().get(clz, id);
return item;
}catch(RuntimeException e){
e.printStackTrace();
}finally{
closeSession();
}
}这段代码为什么提示 必须返回一个Object类型对象。 在try中返回对象有什么需要注意的么?
protected Object get()//你方法返回的类型就是Object类型。
所以就要保证方法能返回一个Object类型的对象
但是你的代码只在try中有 return item;
如果代码出现异常进入catch块里不就不能正确返回Object类型的对象了么。
就相当于是走了分支,每一台分支都要有 return Object;
if-else能好理解一些,如果不在函数内定义全局的返回,就在要每个局部分支定义返回。
try中的东西是不一定能执行完成的
假如你Object item=getSession().get(clz, id);这句话异常,你的函数是没有返回值的
跟你函数定义Object 返回值类型是不符合的
最好的办法是在try外面定义一个对象,在try中赋值,在try外返回
protected Object get(Class clz,Serializable id){
Object item=new Object();
try{
item =getSession().get(clz, id);
} catch (RuntimeException e){
e.printStackTrace();
} finally {
closeSession();
}
return item;
}