我只是在尝试新的kotlin语言。 我遇到了产生无限列表的序列。 我生成了一个序列,并尝试打印前10个元素。 但下面的代码没有打印任何东西: fun main(args: Array) { val generatePrimeFrom2 = generateSequence(3){ it + 2 } print(generatePrimeFrom2.toList().take(10)) } 但是当我改变了print take(10).toList()在print语句中工作正常。 为什么这样? 这段代码适合我: fun main(args: Array) { val generatePrimeFrom2 = generateSequence(3){ it + 2 } print(generatePrimeFrom2.take(10).toList()) }
给出以下代码: open class Foo { companion object { fun fez() {} } } class Bar : Foo() { companion object { fun baz() { fez() } } } baz()可以调用fez() 我可以打电话给Foo.fez() 我可以打电话给Bar.baz() 但是,我不能打电话给Bar.fez() 我如何实现最终的行为?
我正在做一个程序,我需要从两个.txt文件读取输入。 但是我知道有一个比复制代码更简单的方法。 我已经写了这个: import java.io.File fun chamadas (args: Array) { val ficheiro1 = “voos.txt” val ficheiro2 = “reservas.txt” val linha1 = File(ficheiro1).readLines() for (line in linha1) { val parts = line.split(‘:’) val flightNumber = parts[0] val origin = parts[1] val destination = parts[2] val date = parts[3] } val linha2 = File(ficheiro2).readLines() for (line in […]
我有NavagationView在main_activity和NavagationView有一个headerLayout main_activity nav_header_main `问题是如何在主要活动中find头像图片我试图avatar.setOnClickListener {}但抛出NulPointerexception,我也导入这个导入kotlinx.android.synthetic.main.nav_header_main。
我有一个genericstypes( T: Any? ),我需要约束在一种情况下永远不会为null : class Repository { // T may be a non-null or nullable type. fun getFromFoo(): T {} fun getFromBar(): T {} // This is never null. Can I mark it as so? } val repository = Repository() val fromFoo: String = repository.getFromFoo() // Returns a non-null String. val fromBar: String = […]
我正在定义我的Users SQLite数据库表,为此,我创建了以下UserContract和UserEntry类: class UserContract private constructor(){ class UserEntry private constructor(): BaseColumns { companion object { val TABLE_NAME = “users” val COLUMN_DISPLAY_NAME = “display_name” val COLUMN_EMAIL = “email” //… } } } 我面临的问题是我无法访问由BaseColums实现提供的_ID属性: val columnDisplayName = UserContract.UserEntry.COLUMN_DISPLAY_NAME //It is OK val columnId = UserContract.UserEntry._ID //Unresolved reference: _ID 在Java中的等效代码工作正常,所以,有没有人知道是什么原因或错误是什么?
我一直在我的Android应用程序关闭时通过回车键并重新进入一些奇怪的问题,并发现他们正在发生,因为2个单身类中的variables我永远不会重新初始化(问题不会发生,如果手动杀死应用程序来自任务管理器)。 即使我明确地调用完onBackPressed的Main活动,我可以看到onDestroy被调用后,单例仍然在内存中。 我决定在破坏我的Activity之前对这些Singleton进行手动清理,问题是使用Kotlin我需要使所有成员variables为空(?),并且记住将null分配给每个variables都是很麻烦的,所以现在我选择像这样处理Singleton的实例化,并在清理的时候使整个实例变为null: class SingletonName { companion object { private var _instance: SingletonName ? = null private var instance: SingletonName ? get() { if (_instance == null) { _instance = SingletonName () } return _instance } set(value) { _instance = value } @JvmStatic fun get(): SingletonName { return instance!! //avoid having to deal with nullable […]
Spring引导版本2,Spring框架版本5。 如何为beans DSL指定默认的autowireMode ? 我目前使用这个每个bean: fun beans() = org.springframework.context.support.beans { bean(autowireMode = BeanDefinitionDsl.Autowire.BY_NAME) bean(autowireMode = BeanDefinitionDsl.Autowire.BY_NAME) // hundreds more bean } 这是乏味的。 bean实现来自传统应用程序,所以我不能使用Component 。
假设我们有一个JsonNode对象jsonNodeObj ,它需要被分析到多个类ClassA , ClassB , ClassC等中的一个。我可以这样做(不能更丑陋): val mapper = ObjectMapper() try { mapper.treeToValue(jsonNodeObj, ClassA::class.java) } catch (e1: Exception) { try { mapper.treeToValue(jsonNodeObj, ClassB::class.java) } catch (e2: Exception) { try { mapper.treeToValue(jsonNodeObj, ClassC::class.java) } catch (e3: Exception) { … } } } 有什么更好的方式就像用when方式?
我有这个依赖: @Singleton class SpiceMix @Inject constructor(@field:[Named(“oregano”)] private val oregano: Spice, @field:[Named(“sage”)] private val sage: Spice, @field:[Named(“rosemary”)] private val rosemary: Spice) 还有一个模块来完成它的依赖: @Module class SpiceModule { @Provides @Named(“oregano”) @Singleton fun provideOregano(): Spice = Oregano() @Provides @Named(“sage”) @Singleton fun provideSage(): Spice = Sage() @Provides @Named(“rosemary”) @Singleton fun provideRosemary(): Spice = Rosemary() SpiceMix然后被注入我的应用程序的各个位置。 但是,这不会编译,我得到一个错误: Spice cannot be provided […]