我需要將下面的java方法轉換爲scala並且遇到困難,因爲scala不允許您在方法中間返回值。可能有人給我一隻手或至少在如何轉換這是一個開始:將Java方法轉換爲Scala方法
public boolean isAllowed(String method, String path, Map<String,String> apiUrlMap) {
if (apiUrlMap != null) {
Set<Entry<String, String>> apiSet = apiUrlMap.entrySet();
for (Entry<String, String> apiUrl : apiSet) {
String aUrl = apiUrl.getKey();
String aMeth = apiUrl.getValue();
if (aUrl.equals("#")) {
if (aMeth.contains(method)) {
return true;
}
}
if (aUrl.endsWith("#")) {
String testUrl = aUrl.replaceFirst("/#", "");
if (path.startsWith(testUrl)) {
if (aMeth.contains(method)) {
return true;
}
}
}
if (aUrl.equals(path) || path.equals(aUrl +"/")) {
if (aMeth.contains(method)) {
return true;
}
}
}
}
return false;
}
「......因爲Scala不允許你在方法中間的返回值」 - 爲什麼你認爲呢? Scala中也有'return'關鍵字。 – Jesper 2012-03-26 17:14:58
我想是的,剛開始學習scala,並沒有看到任何與實際返回語句的例子。當然,我敢打賭,除了這個非常必要的java方法之外,還有更好的方法來做到這一點? – chiappone 2012-03-26 17:18:05
如果您使用IntelliJ,則只需粘貼Java代碼即可將其轉換爲Scala。 Unidiomatic Scala,但它應該可以工作,並且可以用它作爲基礎。 – 2012-03-27 02:52:15