Я задавал себе этот вопрос некоторое время, это базовый c вопрос, но я никогда не мог сделать это каким-либо другим способом
Цель это исключить else if
в коде
У меня действительно есть это:
String contentType = parser.getMimeMessage().getContentType().toLowerCase();
//contentType can be for example: "text/a; charset=us-ascii"
String content = parser.getPlainContent();
if (contentType.indexOf("text/a") > 0) {
processTextA(content);
} else if (contentType.indexOf("text/b") > 0) {
processTextB(content);
} else if (contentType.indexOf("text/c") > 0) {
processTextC(content);
}
Я хотел бы сделать что-то похожее на это:
String contentType = parser.getMimeMessage().getContentType().toLowerCase();
//contentType can be for example: "text/a; charset=us-ascii"
String content = parser.getPlainContent();
switch (contentType) {
case (contentType.indexOf("text/a") > 0):
processTextA(content);
break;
case (contentType.indexOf("text/b") > 0):
processTextB(content);
break;
case (contentType.indexOf("text/c") > 0):
processTextC(content);
break;
}
Есть ли способ достичь чего-то похожего на это?
В примере я поставил 3 else if
, но реальность такова, что у меня есть примерно 20 else if
один позади другого
РЕДАКТИРОВАТЬ
contentType может быть text/a; charset=us-ascii
, однако также может быть charset=us-ascii; text/a;
Я не могу доверять отправителю в соответствии с любыми спецификациями потому что это частный протокол связи между компаниями, поэтому split
не может быть использован
Я привел это в качестве примера, но вопрос в том, что необходимо вычислить статистику случая