Я скачал файл kotlin с github и хотел преобразовать его в файл java. Я сделал это с помощью Tools> Kotlin> Show kotlin ByteCode и затем декомпиляции. Файл Kotlin находится ниже:
package io.pokemon.core
import io.pokemon.model.Card
import io.pokemon.util.random.Randomiser
import io.pokemon.viewmodel.Round
class RoundFactoryImpl(private val randomiser: Randomiser) : RoundFactory {
override fun buildRound(cards: List<Card>): Round = Round()
}
После копирования декомпилированного кода kotlin в файл java я получил ошибку: DefaultConstructorMarker не опубликован c в kotlin .jvm. внутренний; невозможно получить доступ из внешнего пакета.
Я попытался исправить это, добавив код в DefaultConstructorMarker, однако это не помогло исправить ошибку.
package io.pokemon.core;
import io.pokemon.model.Card;
import io.pokemon.util.random.Randomiser;
import io.pokemon.viewmodel.Round;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;
@Metadata(
...
)
public final class RoundFactoryImpl implements RoundFactory {
private final Randomiser randomiser;
@NotNull
public Round buildRound(@NotNull List cards) {
Intrinsics.checkParameterIsNotNull(cards, "cards");
return new Round((List)null, (Card)null, 3, (DefaultConstructorMarker)null);
}
public RoundFactoryImpl(@NotNull Randomiser randomiser) {
super();
Intrinsics.checkParameterIsNotNull(randomiser, "randomiser");
this.randomiser = randomiser;
}
}