【发布时间】:2020-02-26 22:54:43
【问题描述】:
我正在尝试从 Kotlin 文件调用非静态 Java 方法,因为我需要能够使用 findViewById。但是,当我将方法更改为非静态时,Kotlin 文件返回以下错误:未解析的引用:main。当 Java 方法是静态的时,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);
}
【问题讨论】:
-
你需要一个 PokemonRand 类的实例才能调用它的实例方法。但我认为这里还有一些更基本的设计问题。这个名为
main的函数(它确实应该有一个名称来描述它的作用)不返回任何内容。它基本上是一个需要一副纸牌的功能,我想向用户显示其中的两张。那么为什么一个叫做工厂的东西告诉其他对象在工厂实例化时选择并显示两张卡片,然后将Unit存储在一个名为customer的属性中?这些都没有任何意义。