我的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.
}
我在这里理解两个问题时遇到一些困难
return
,由于switch...default
条款,我已经定义了明确的执行路径,所以我看不出为什么需要返回语句switch
语句中,同一类中的私有doSave
方法会以某种方式变得不可见?经过长时间的差距,我只回到Java,我只做了JS和PHP。但是,我一次完成了大量的Delphi编码,所以我很欣赏Java编译器所强加的严格性。在这种情况下,虽然在我看来,它有点OTT。或许我误解了什么?在任何情况下,我都会感激一些帮助和提示。
答案 0 :(得分:2)
return doSave(data,cbc,ctxt);break;
您的break
声明无法访问。
您应删除该语句以及最终return false;
语句,该语句也无法访问。