Wpis z mikrobloga

Hej
Był by ktoś w stanie przełożyć mi taki kod kotlinowy :

class LexerFactory {
fun getLexer(type: LexerType, cs: CharStream): Lexer {
when (type) {
LexerType.JAVA_8 -> return Java8Lexer(cs)
}
}
}

class TokenizerImpl : Tokenizer {
override fun tokenize(lexerType: LexerType, input: String): List {
val lexer = LexerFactory().getLexer(lexerType, CharStreams.fromString(input))

return lexer.allTokens.map { t -> t.type }
}
}
na jave ?
ewentualnie na prostszą jave ? nie za bardzo rozumiem te mapowanie i nie potrafie tego zaimplementowac w czysto javovym projekcie ( problem np ze znakiem -> )
#java #kotlin #programowanie
  • 3
@DaxterPoker:
public class LexerFactory {
public Lexer getLExer(LExerType type, CharStream cs) {
if (type == JAVA8) return new Java8Lexer(cs);
// sądząc po kodzie to LexerType może przyjmować tylko JAVA
8, bo inaczej kotlin krzyczałby, że nie ma innego returna, więc można rzucić jakiś wyjatek żeby java nie krzyczała
throw new IllegalArgumentException("type not found");
}

class TokenizerImpl implements Tokenizer {
@ Override
List tokenize(LexerType lexerType, String input) {
Lexer lexer =