Java switch语句中的方法范围

时间:2016-05-02 07:51:12

标签: java scope visibility phonegap-cli

我的previous one以一种相当宽松的方式提出了这个问题。这里的上下文是构建配置了Phonegap CLI的Android APK,通过build-extras.gradle使用Java 7.这是我的代码

public boolean execute(String action, JSONArray data, 
CallbackContext cbc) throws JSONException 
{
 Context ctxt = cordova.getActivity().getApplicationContext();
 // return doSave(data,cbc,ctxt);
 //the above compiles correctly 
 //doSave is a private method in the same class 
 switch(action)
 {
  case "save":return doSave(data,cbc,ctxt);break;
  //the compiler complains about an `unreachable statement`
  //other case statements ommitted for clarity
  default:cbc.error("Unknown action: "  + action);return false;
 }
 return false;
 //without this return the compiler is upset.
}

我在这里理解两个问题时遇到一些困难

  1. 据我所知,即使没有最后return,由于switch...default条款,我已经定义了明确的执行路径,所以我看不出为什么需要返回语句
  2. 那么在switch语句中,同一类中的私有doSave方法会以某种方式变得不可见?
  3. 经过长时间的差距,我只回到Java,我只做了JS和PHP。但是,我一次完成了大量的Delphi编码,所以我很欣赏Java编译器所强加的严格性。在这种情况下,虽然在我看来,它有点OTT。或许我误解了什么?在任何情况下,我都会感激一些帮助和提示。

1 个答案:

答案 0 :(得分:2)

return doSave(data,cbc,ctxt);break;

您的break声明无法访问。

您应删除该语句以及最终return false;语句,该语句也无法访问。