我想使用我的自定义类的variables和方法的扩展。 我正在尝试下面的代码,但得到错误 本地扩展属性是不允许的 val Double.km: Double get() = this * 1000 val Double.m: Double get() = this val Double.cm: Double get() = this / 100 val Double.mm: Double get() = this / 1000 val Double.ft: Double get() = this / 3.28084 val oneInch = 25.4.mm println(“One inch is $oneInch meters”) // prints “One inch is […]
这是我的测试代码: class Test { init { a = 1 } constructor() { a = 2 } private var a: Int init { a = 3 } } 如果我删除了第二个构造函数: class Test { init { a = 1 // Error: Variable cannot be initialized before declaration } // constructor() { // a = 2 // } private […]
我试图隐藏一个只能用于测试用法的方法。 javadoc的@hide是否有任何等价物@hide 我不是使用KDoc的专家,也不是使用JavaDoc,如果我错过了任何概念,请指向我。 /** @hide */ fun methodToHide() : String = “foo”
我使用Kotlin视图绑定获取视图引用和设置数据视图,但我有一个问题: 我有一个名为title的本地variables val title = “any text” 并在视图中,我有一个ID 标题的TextView 所以我怎么区分它们呢?
我试图将窗体传递给控制器,但对象是空的(看起来像从默认构造函数而不是forms获取值)。 不知道为什么@Valid不起作用。 码: 端点 @PostMapping(“/add”) fun addDevice(@Valid @ModelAttribute device: Device, model: ModelMap): ModelAndView { deviceRepository.save(device) return ModelAndView(“redirect:/devices/all”, model) } 实体: @Entity data class Device( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Int? = null, @NotNull val name: String? = “”, @Min(10) @Max(30) val price: Int? = null, @Size(min = 8) val secretPhrase: String? = “” ) […]
我正在开发一个使用Kotlin的Spring Boot(2.0.0 M7)应用程序,并且需要定义一些bean来利用新的DSL来定义bean。 我不能想出一个方法来注入来自@Value属性的值。 我们来考虑这个简化的例子: fun beans() = beans { for (i in 1..10) { bean(“myString${i}” + someProperty) { “myString${i}” + someProperty} } } someProperty应该来自这样的东西: @Value(“\${myProperty}”) someProperty: String 我如何使它可以访问beans {} DSL?
我正在创建一个项目中的kotlin文件。 运行.kt文件时不会创建类文件 在java中,如果运行.java文件,则会创建.class文件。 出于某种原因,我无法创建这些.class文件。 而是在输出文件夹中查找。 我尝试重建项目,但没有解决问题
我试图使用Spring DI为kotlin-javafx桌面应用程序,但是Spring并没有将bean注入到lateinit属性中。 这是我的初学者class package ui @Component class Starter : Application() { override fun start(primaryStage: Stage?) { val root : Parent = FXMLLoader.load(javaClass.getResource(“/view/main.fxml”)) primaryStage?.title = “Title” primaryStage?.scene = Scene(root) primaryStage?.show() } companion object { @JvmStatic fun main(args: Array) { AnnotationConfigApplicationContext(SpringConfig::class.java) launch(Starter::class.java, *args) } } } 这是我的Spring-config类 package config @Configuration @ComponentScan(basePackages = arrayOf(“domain”, “ui”)) open class SpringConfig […]
我刚开始探索Kotlin语言。 我正在努力inheritance,var和val和副作用。 如果我声明一个具有val x的特征A并且在AImpl覆盖x ,则可以将其重写为var (参见下面的代码)。 令人惊讶的是A的print()方法受x的重新分配影响,即使x是A的值。 这是一个错误还是一个function? 码: trait A { fun print() { println(“Ax = $x”) } val x : Int; } class AImpl(x : Int) : A { override var x = x; // seems like x can be overriden as `var` } fun main(args: Array) { val a = AImpl(2) a.print() […]
问题在于Kotlin 类委托只允许委托给构造函数参数,因此似乎迫使你为构造函数提供一个参数。 以下是我有关这个问题的具体使用情况的原始问题。 我想要做到以下几点: val myTable1: MyTable = MyTable() 哪里 MyTableinheritance自ImmutableTable ( src )或至少Table 而且我不必手动将所有的Table方法委托给一些基础实现。 我也想避免以下几点: val myTable2: MyTable = MyTable.build() 即我不想被迫使用伴侣对象/静态工厂方法。 我试图扩展ImmutableTable ,但我越来越This type has a constructor, and thus must be initialized here 。 我试图扩展Table接口并委托给它(以避免重新实现方法),但是我不得不提供一个Table的实例作为构造参数。 我不能在init {}块中初始化它。 请看我的确切的企图这个要点 。 使用Kotlin版本: 1.0.2