请教~这个代码哪里错了,为什么编译过不了

来源:百度知道 编辑:UC知道 时间:2024/06/25 10:56:41
pairs是个Object类型的2维数组

public Object get (Object key)
{
for(int i=0;i<index;i++)
{
if(pairs[i][0].equals(key))
{
return pairs[i][1];
}
else
{
throw new RuntimeException("fail to find key");
}
}
}
这段代码在eclipse中编译时一出错 说
此方法必须返回Object类型结果
这个代码的意思很明显..就是输入key 然后获得对应的value...
如果在数组中搜索到了该key 就返回key的value
如果搜索不到 就抛出一个异常来显示错误原因

1楼...我定义的是Object类型的2维数组,返回其中的一个元素难道它不是Object??

2楼 我的程序不仅仅是要不报错...还希望能按照想的方式运行

3楼 不能在throw异常之前加return语句好不好..也会编译出错 因为这样写程序根本不会执行throw语句

4楼 else里面不能写return null 因为抛了异常 怎么加都会有错

所以抱歉 你们都没有给我想要的答案 继续等....

在方法的最后一行加上return null;
虽然基本运行不到这个,但是它是必需的。因为所有路径都必须能到一行return。你的代码,如果for循环一次都不运行的话,它就return null在最后.

你的方法定义成Object类型当然要返回Object类型了

在else 里面 throws 之前 加上 return null .保证了返回object也正确抛出错误,建议在外层接住,并判断是否为NULL,避免出现其他错误

在else 里面必须有return null .保证了返回object也正确抛出错误。