Shinigami
Shinigami

Reputation: 685

How do I need to write the 3rd line - Not enough information to infer type variable T

I'm new to Kotlin and try to convert a project from Java to Kotlin
I just need one last step and I don't understand what's going on :(

I'm getting a Not enough information to infer type variable T on model.predict call

override fun link(word: String): LinkSuggestion {
    val input: DoubleArray = gramToInt.toArray(word)
    val output: Array<Any> = model.predict(input)
                                // ~~~~~~~ Not enough information to infer type variable T
    val maxPredictionIndex: Int = (output[output.size - 1] as Long).toInt()
    val maxPredictionProbability: Double = output[maxPredictionIndex] as Double
    return LinkSuggestion(word, intToLink.fromInt(maxPredictionIndex), maxPredictionProbability)
}

where model is import org.pmml4s.model.Model


The previous Java code:

@Override
public LinkSuggestion link(String word) {
    double[] input = gramToInt.toArray(word);
    Object[] output = model.predict(input);
    int maxPredictionIndex = ((Long) output[output.length - 1]).intValue();
    double maxPredictionProbability = (Double) output[maxPredictionIndex];
    return new LinkSuggestion(word, intToLink.fromInt(maxPredictionIndex), maxPredictionProbability);
}

Upvotes: 1

Views: 80

Answers (1)

Shinigami
Shinigami

Reputation: 685

I needed to write

val output: Array<Any> = model.predict<Any>(input)

Upvotes: 2

Related Questions