Мне нужно преобразовать следующий 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 не позволяет вам возвращать значения в середине методов» - Почему вы так думаете? Ключевое слово 'return' также существует в Scala. – Jesper
Я предполагаю, что это так, только начал изучать scala и не видел никаких примеров с действительными операторами return. Конечно, я уверен, что есть лучший способ сделать это, кроме этого очень важного java-способа? – chiappone
Если вы используете IntelliJ, вы можете просто вставить код Java и преобразовать его в Scala. Unidiomatic Scala, но он должен работать, и вы можете использовать его в качестве основы. –