【发布时间】:2012-03-26 17:13:54
【问题描述】:
我需要将以下 java 方法转换为 scala 并且遇到困难,因为 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 不允许您在方法中间返回值" - 你为什么这么认为?
return关键字也存在于 Scala 中。 -
我猜是这样,刚开始学习 scala 并没有看到任何带有实际返回语句的示例。当然,我敢打赌,除了这种非常必要的 java 方式之外,还有更好的方法吗?
-
如果您使用 IntelliJ,您只需将 Java 代码粘贴进去,它就会将其转换为 Scala。 Unidiomatic Scala,但它应该可以工作,您可以将其用作基础。
标签: scala