Android вызов non-stati c Java метод из Kotlin - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь вызвать метод non-stati c Java из файла Kotlin, так как мне нужно иметь возможность использовать findViewById. Однако, когда я изменил свой метод на non-stati c, файл Kotlin вернул следующую ошибку: Неразрешенная ссылка: main. Когда метод Java был установлен c, файл Kotlin смог запустить метод Java.

Kotlin Файл:

class RoundFactoryImpl(private val randomiser: Randomiser) : RoundFactory {
     override fun buildRound(cards: List<Card>): Round = Round()
     val card = Round()
     val customer = PokemonRand.main(randomiser, card)
}

Java Файл:

public void main(Randomiser randomiser, Round cards) {
    Card cardA, cardB;

    cardA = getCard(randomiser, cards);
    cardB = getCard(randomiser, cards);

    Log.d("cardA", cardA.toString());
    Log.d("cardB", cardB.toString());

    while (cardA.getRarity() == cardB.getRarity()) {
        cardB = getCard(randomiser, cards);
    }

    dispCard(cardA, cardB);
    compCard(cardA, cardB);
}

1 Ответ

0 голосов
/ 26 февраля 2020
val customer = PokemonRand.main(randomiser, card)

Первая проблема с вашим кодом заключается в том, что вы присваиваете значение main метода переменной customer, тип возвращаемого значения которой void;

Вторая проблема с кодом - ваша главная Метод не является stati c, поэтому вам нужно создать экземпляр класса PokemonRand и вызвать метод main для этого экземпляра, как показано ниже:

val pokemon = PokemonRand();
pokemon.main(randomiser, card);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...