Kotlin 科特林编辑列表

在Kotlin中编辑不可变的列表的最佳方法是什么 我知道List实际上并不是不可变的,但是如果我将List传递到一个函数中,并且我需要整个列表减去一个元素,有没有支持的方法来处理这个问题?如果我希望整个列表包含一个额外的元素,那该怎么办?如果您处理的是不可变列表,那么您要做的就是创建新列表。因此,在您的情况下,如果您想要一个没有元素的列表,那么就过滤掉该元素(在Kotlin中,您可以使用filter函数)并返回新列表。如果您自己创建列表,而不是调用listOf(“foo”,“bar”)调用可变列

如何从包类名字符串中获取Kotlin KClass?

如果我有一个字符串,比如“mypackage.MyClass”,我如何在运行时(从JVM)获取相应的KClass。您可以使用Java的方法获取类实例类.forName,然后使用.kotlin扩展属性将其转换为KClass。代码如下所示: val kClass = Class.forName("mypackage.MyClass").kotlin 在某些情况下,可能会添加更直接的方法。该问题位于请注意,这不适用于原始类型,如char。它也不适用于自动转换的类型,如java.util.List、k

Kotlin Spek-如何使用测试报告生成XML?

我正在使用Spek测试我的Kotlin应用程序。我想在Jenkins构建之后发布我的测试报告。JUnit或TestNG将生成XML报告,Jenkins可以使用该报告生成测试统计数据 Spek是否生成这样的报告?如果是这样,如何配置我的Gradle项目来获得它?如果没有,其他可用的报告选项是什么?在CI构建之后,我目前正在使用与集成我的(多模块)项目,因此我可能会对单模块(我已调整)构建有一些小错误,但这是我研究的一部分 您需要做的第一件事是配置build.gradle,以便让您的测试正常工作,即

Kotlin 如何按不区分大小写的顺序对对象列表进行排序?

假设我在Kotlin中有一个字符串列表:stringList:MutableList 然后,通过执行以下操作,可以很容易地按不区分大小写的顺序对此类列表进行排序: stringList.sortWith(String.CASE_INSENSITIVE_ORDER) 但是我如何按照不区分大小写的顺序对对象列表进行排序呢?例如:places:MutableList 其中Place是一个简单的类,有两个字段-name:String和id:Int,我想按name字段对这些位置进行排序 我尝试过这样做:

Kotlin:如何检查数字是否有小数点(模数解不起作用)

我是Kotlin的新手,来自JS。我目前正在制作一个计算器应用程序,正在使用“%”运算符。我需要知道“当前输入*0.01”的输出是整数还是小数点。通常,我会使用 num % 1 !== 0 但它在Kotlin中不起作用,并给我错误“!=运算符不能应用于Double或Int”。字符串或字符也是如此。下面是我的Kotlin代码,希望有人能帮助我!谢谢 val percentResult: Double() = result.toDouble() * 0.01 if(percentResult

瓦尔。。。在Kotlin中获取(){…}

从Kotlin Koan问题( ),我有这个密码。我怎么读这个?它看起来像一个带有val的变量,但它是一个带有()和{}的函数 val Customer.orderedProducts: Set<Product> get() { // Return all products this customer has ordered todoCollectionTask() } val Customer.orderedProducts:Set get(){ //退回此客户订

Kotlin 如何使用ByteArray.getOrElse

我不理解如何为`ByteArray.getOrElse()函数指定默认值 我试过: myInt = dat.getOrElse(0, 0).toInt() 但编译器抱怨出现以下错误: The integer literal does not conform to the expected type (Int) -> Byte 如何指定默认值?第二个参数是函数文本 myInt = dat.getOrElse(100, { /** what is there is no element 1

Kotlin-如何使用OkHttp Kotlin设置连接超时

我看到了` 但是这是Java(Android)语言的链接。我想使用kotlin语言。。。 ` 我正在使用OkHttp库 val client = OkHttpClient() val time = client.connectTimeoutMillis() // it's get only methood but i looking for method for set Timeout 我的问题是我找不到如何设置Kotlin的连接超时和套接字超时。需要一个Builder,没有可用的设置

EnumClass.values()在Kotlin中如何工作?

EnumClass.values()如何在Kotlin中工作 我的意思是,它是否每次都会创建新的数组,或者它是静态的,或者其他什么?虽然不是100%确定,但我假设在Kotlin(以及Java)中Enum.values()方法是由编译器生成的: 编译器在创建时会自动添加一些特殊方法 枚举。例如,它们有一个静态值方法,该方法返回 按顺序包含枚举的所有值的数组 宣布。此方法通常与 为每个构造迭代枚举类型的值 从: 此方法每次都返回新数组 关键是在Java中数组不能是常量:它的值可以修改,因此您不能共

Kotlin Corda:一个事务的输出是否可以用于同一流程中具有多个相同签名者的另一个事务?

有一个符合以下场景的流程。 发起方:甲方 响应方:PartyB 事务1:输入状态A-ContractA导致输出状态B-ContractA。参与者是PartyA和PartyB 事务2:输入状态B-ContractA,无输出。参与者是PartyA和PartyB 在科尔达这可能吗?请分享一个有回应的例子。谢谢。是的,这是可能的。请查找链接了解更多信息 听起来您收到了两条不同的错误消息: 如果不尝试启动第二个流会话来获取第二个签名,则会得到如下结果: net.corda.core.flows.unex

“如何解决错误”;未能解析:org.jetbrains.kotlin:kotlin-stdlib-jre7…“;在Android Studio中构建时

我通过选中AndroidStudio 3中的“IncludeKotlin”框创建了一个新项目,在编译时出现了一个错误 "Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7..." 我已经确保所有插件都是最新的,并且安卓SDK安装正确 如何解决此错误?kotlin stdlib jre[7/8]不久前已被弃用,并已被删除。弃用说明一直保存到,这是发布这些工件的最后一个版本。可以找到官方的弃用通知。使用任何不推荐的版本(在删除之前)

Kotlin 如果项目反应器中的其他Mono为空,则修改Mono?

我有一个Mono,当otherMono为空时,我想修改它 第一个Mono: deviceRepository.getDevice(deviceId, userId): Mono<Device> registrationRepository.canRegister(deviceId) : Mono<DeviceRegistrationInfo> 我想要实现的是,当canRegister为给定的deviceId返回空的Mono时,返回修改的Mono: device.cop

Kotlin:具有公共setter的受保护变量

我是kotlin的新手,我正在尝试创建这种java环境: protected String aVariable; public setAVariable(String aValue){ aVariable = aValue; } 如果我试图用不同的修饰符指定setter,我会得到一个错误。我也试过: protected var aVariable: String? = null fun setAVariable(value: String?){ aVariable = va

Kotlin 驼峰:当项目数量小于批次大小时,如何拆分然后聚合

我有一个骆驼路由,它从S3读取文件,并按如下方式处理输入文件: 使用 按body()拆分输出 按主体属性(.sement)和批大小2进行聚合 调用持久性服务以在给定的批中上载到DB 问题是,当批大小为2且记录数为奇数时,总有一条记录无法保存 提供的代码与等价的Java代码(除了“\${simple expression}”前面的斜杠或没有分号来终止语句)没有太大区别 如果我将批大小设置为1,则会保存每条记录,否则最后一条记录将永远不会保存 我已经检查了几次文档,但它似乎没有涵盖这个特定场景 除了

初始化Kotlin中作为函数的字段成员

Kotlin的新手,我看到了以下代码: val myModule : Module = module { viewModel { MyViewModel(get()) } single { MyRepository() } } 查看Kotlin文档,我不清楚“模块”后面的大括号是什么意思。模块是否为函数,大括号用于初始化函数?如果这是真的,你能告诉我Kotlin文档中指出这一点的部分吗?我在文档中找不到任何显示此示例的内容。以下是链接: 大括号表示模块函数接收lambda作为参数 大

Kotlin Room+LiveData动态更改查询功能

我正在制作一个应用程序来更新当前列表。实现是使用room和livedata完成的,我使用的是没有viewmodel的mvp模式。我的问题是,如果我有一个返回所选类别中所有项目的查询,并且我在livedata上已经有了一个可观察项,那么我可以用不同的查询参数更改dao函数并相应地更新列表吗。我发现最接近它的是: 但由于我对开发比较陌生,目前正在探索android中的反应模式,这已经证明是一个相当大的挑战 在演讲者中 override var itemsList: LiveData<List

Kotlin Corda状态演化-可空与默认属性

在Corda中,向状态添加新属性(状态演化)要求新属性可以为空,以便与状态的以前版本保持向后兼容 data class Version1DummyState( override val participants: List<AbstractParty> ) : ContractState data class Version2DummyState( override val participants: List<AbstractParty>, v

我可以以某种方式组合布尔和空检查吗?我想知道这个kotlin方法是否可以进一步简化

我是Kotlin的新手,我想知道简化以下方法的最佳方法 如果金额由X个人支付,则我需要返回应付金额,否则我需要返回0 在下面的代码中,付款是一个可为空的对象。它包含retailAmount,这也是一个可为空的对象retailAmount包含基本费用,该费用为双倍。(如果付款或零售金额为空,我需要返回0) 您可以执行以下操作: fun getChargesPayableByX(personX: String): Double = areChargesPayableByX(personX)

在Kotlin中使用Java枚举时的重载解析歧义

我在Kotlin代码中使用java enum io.confluent.kafka.schemaregistry.avro.AvroCompatibilityLevel public enum AvroCompatibilityLevel { NONE("NONE", AvroCompatibilityChecker.NO_OP_CHECKER), // ... public final String name; public final AvroCompatibili

在Kotlin/JVM中加载Kotlin/本机共享库

是否有相对简单的方法将Kotlin/本机动态库加载到Kotlin/JVM中。我的案例的一些细节:我有一些Kotlin/JVM接口,例如IGenerator: interface IGenerator { fun generate(): ByteArray } 出于性能考虑,我想使用本机代码实现这个接口。如果没有Kotlin/Native,我将编写一个C/C++代码,然后将其编译到共享库中,并使用例如SWIG()构建一个JVM包装器。这个工具为我的共享库生成JNI包装,加载到我的Kotli

Kotlin中具有一个类和接口的多重继承

我的目标是通过一组固定的属性和方法(其名称不会重叠)从现有库扩展多个类 直接的解决方案是简单的继承:派生库类并添加属性/方法。但这将是相当重复的,因为所有派生类的属性和方法都是相同的。最好创建一个包含我需要的所有属性和方法的辅助类,并简单地从库类和辅助类派生扩展类 但是,在Kotlin中,没有类似于C++的多重继承,我希望使用接口使其工作,其中接口将包含我需要的所有属性和方法。 我从以下简单的代码开始测试接口: open class LibraryClass{ var x: Int =

Kotlin/Native如何仅使用标题C/C++;图书馆

因此,我试图在我的Kotlin/Native项目中使用stb_映像,但在尝试将其包括在我的项目中时遇到了困难。这是一个只包含头的库,konan似乎希望得到一个编译过的对象文件,所以我想知道是否有任何方法可以生成CSTUB,然后使用头进行链接,除非我必须编译一个基本的翻译文件,因为stb_image只需要你有一个定义STB\u IMAGE\u实现但是我在编译器pts-GSTB\u IMAGE\u实现中定义了它。只是编译一个翻译单元,创建静态对象,然后链接到它会更容易吗?还是K/N有办法帮我做到这一

Kotlin 我们如何确定我们已经处于事务块中?

我使用暴露的无DAO的咖啡因缓存。 常用的用法是 transaction { val row = rowService.getById(1)!! } RowService首先尝试在缓存中查找行,如果为负数,则对数据库运行查询。我怀疑即使没有任何查询,事务块也会有一些开销,如果我在大部分时间缓存命中,我想将事务块移动到RowService中,它在其中解析数据库中的数据,但是我不想在此过程中创建嵌套的事务 如何检查我是否已经在事务块中并重新使用它,或者打开新的事务块并运行fetch语句和

Kotlin 查找数组中对象的索引而不是对象本身

我有一个对象数组(称为Image的对象),我想在数组中找到符合特定条件的对象索引。相反,我当前的代码返回对象本身,而不是数组中的索引: val originalImage = imagesArray.find {it.position == 2} 我的图像类: data class Image ( val position: Int? = 0, val coor: IntArray = intArrayOf(0, 0) ) { override fun equals(o

Kotlin 科特林-<;T>;与<;T:任何>;

在Kotlin中的某些情况下,编译器会抱怨定义为的泛型类型参数,并期望。区别是什么?区别在于普通的表示它可以为空。(由Any?表示)。使用将T限制为不可为空的类型 所以区别在于是一个隐式我只是好奇T是隐式可空的。Null是否也扩展了任何类?谢谢。我在任何地方都找不到这方面的参考资料。因此,我一直认为它将与Java中的Object相同,因为Object对应于Any?而不是Any。与Java相反,“Kotlin支持可空类型”的说法是不正确的。它支持的是不可为null的类型。我还要补充一点,说意味着它

在没有类的kotlin文件中,在何处放置@since标记?

我们通常将@author和@since标记放在顶级类的javadoc/kdoc注释中 但是,如果一个kotlin文件没有任何类或对象,而不是顶级函数,那么是否有合适的位置来放置@author和@since标记?如上所述,您可以将它们放置在顶级函数的元素上。但是,如果您想记录模块/包,则需要创建一个单独的标记文件。请参阅链接文档页面的最后一节

Kotlin折叠功能是否需要类型转换或指定lambda类型?

我正在看Kotlin fold函数的文档,在理解正在发生的事情时有点困难。他们提供的示例如下: val fruits = listOf("apple", "apricot", "banana", "blueberry", "cherry", "coconut") // collect only even length Strings val evenFruits = fruits.groupingBy { it.first() } .fold(listOf<String>(

chars阵列上Kotlin扩散算子的行为

我已经使用Kotlin一段时间了,但我刚刚发现,当我想对字符数组使用spread运算符并将其传递给split函数时,它不起作用 fun main(){ val strings=arrayOf(“一”、“二”) val stringSplit=”“.split(“一”、“二”) val stringsSplit=“.split(*字符串) val chars=arrayOf('1','2') val charSplit=”“.split('1','2') val charsSplit=“.spli

带有Kotlin的OpenApi 3不会生成验证

我试图用OpenApi生成器生成请求,但忽略了所有约束,如min、minvalue、maxlength等。例如: data class SomeClassNameGen ( @JsonProperty("queryText") val queryText: kotlin.String, @JsonProperty("test") val test: kotlin.Int? = null } 来自openapi.yaml的代码 SomeClassName:

Kotlin 为什么String.toDouble()会增加小数位数?

我有一个服务器返回一个值(JSON格式),其中包含一个带小数位的数字,例如203.14 因为在我的应用程序中,我需要进行一些计算,所以我必须将其转换为Double 但是,当转换为Double时,其值变为203.13999938964844 出于某些业务逻辑原因,当我显示该值时,我需要将该数字四舍五入到小数点后2位 现在它变成了203.13,比服务器返回的值小0.01 当我将“203.14”转换为双精度时,如何保留203.14 更新: 我刚刚发现原因是模型类使用了float来接受服务器值,但后来转

Kotlin 使用RxJava在一段时间后发出项目

我想在一段时间后用RxJava发出项目。 我提供了一些伪代码来说明我想要什么 class Segment( val startTime: Int, val duration: Int ) fun main() { val segments = listOf( Segment(0, 1500), Segment(1500, 3000), Segment(4500, 450) ) Observable

Kotlin 你能用Arrow FX将这段代码转换成单子理解吗?

你能把这种被动的方法转换成一种有效的方法吗 更新 根据El Paco的回答,我将代码修改为: return FluxK.monad().fx.monad { val client = !clientRepository.findById(clientId).toFlux().k() if (client != null) { !applicationRepository.findByProjectId

Kotlin 房间如何用外键在3张桌子上取东西

我有一个名为User的表。此表有两个外键Account和Shop(都是1..1关系)。 所以我创建了一个名为UserAndAccount的数据类和另一个名为UserAndShop的数据类 我现在如何获取所有这些数据(将等于UserAndAccountAndShop) User.kt @Entity( tableName = "User" ) data class User( @PrimaryKey(autoGenerate = false) @Ser

如何使用kotlinx.serialization序列化泛型密封类

还不确定这是否可能,但就我个人而言,我不知道如何将其序列化 sealed class ServiceResult<out T : Any> { data class Success<out T : Any>(val data: T) : ServiceResult<T>() data class Error(val exception: Exception) : ServiceResult<Nothing>() } 密封类服务结果

Kotlin 基于JPA的Micronaut函数应用

我正在尝试创建一个支持JPA的Micronaut函数应用程序 build.gradle.kts plugins { id("org.jetbrains.kotlin.jvm") version "1.4.10" id("org.jetbrains.kotlin.kapt") version "1.4.10" id("org.jetbrains.kotlin.plugin.allope

Kotlin Arrow lens赢得';t不允许我将可为null的属性设置为null

鉴于此(极其简化的)代码: 我可以打电话 val m1 = MigrationStatus.token.modify(m) { "some token" } 但是,由于参数类型是不可为null的字符串,如何将标记修改回null?当然 val m2 = MigrationStatus.token.modify(m1) { null } 不编译 当尝试将标记类型更改为选项并将其设置为无时,也会发生同样的情况,但我现在避免了它(我不确定我是否喜欢,但那是另一回事) 我错过了一些

在Kotlin中将枚举字段序列化为JSON

我有一个愚蠢的问题让我有点吃惊。 我有一个枚举和一个数据类,如下所示: enum class MyEventType(val typeName: String) { FIRST("firstEventReceived") } data class MyEvent( val id: String, val event: MyEventType ) 我需要将其作为json字符串发送,但common Desearizer会生成这样的json {

Kotlin 工作经理观察改装进度

我正在使用Kotlin workmanager上传文件。在CoroutineWorkmanager中,我使用挂起上载功能进行文件上载。我想观察改造的进展,并显示在用户界面上。我可以看到改装进度状态,但无法在workManager中观察到 我的请求主体类,其中我可以看到改装进度状态: class ProgressRequestBody : RequestBody { val mFile: File val ignoreFirstNumberOfWriteToCalls : Int

最终在Kotlin Kotest中处理多个异常

根据kotest文件: 您可以告诉最终忽略特定的异常,其他任何异常都会立即导致测试失败 我希望将多个异常传递给我知道将由我的块抛出的最终异常,以便我可以显式地跳过它们 现在我只看到了传递一个异常的方法,如何将多个异常传递给最终,以在块抛出这些异常时跳过它?您可以对所有异常使用超类,如 eventually(200.milliseconds, exceptionClass = RuntimeException::class) { throw IllegalStateException() }

如何在Kotlin中找到属于某个超类型的类的所有接口?

假设这是Kotlin代码 接口命令 接口命令1:命令 接口命令2:命令 接口顺序 类对象:命令1、命令2、命令 然后,对于上面的代码,输出应该是Command1和Command2,因为我只想要某个类型的结果,在本例中是Command。因此,订单不应作为输出。代码: Command1 Command2 fun main(){ Obj().javaClass.interfaces.filter{Command::class.java.isAssignableFrom(it)}.forEach{p

Kotlin 将异常从async传播到CoroutineExceptionHandler

我有一个asynccoroutine,它可能会引发异常。如何将异常传播到我的CoroutineExceptionHandler?使用try/catcharoundawait我能够捕获异常,但我似乎无法将处理传播到处理程序,无论上下文如何: val handler = CoroutineExceptionHandler { _, e -> e.printStackTrace() } val context = Executors.newSingleThreadExecutor().asCor

Kotlin 子类中未识别子类型

我有以下代码设置 abstract class GenericQuestionEditor() { protected abstract var data: GenericQuestionData } 但是,当我创建EditorSimple()时,当我试图将数据设置为DataSimple()时,它会抛出一个错误,为什么 class EditorSimple(): GenericQuestionEditor() { override var data = DataSimple()

Kotlin中If-Else语句的多个条件

我只是想模仿一个简单的登录过程 如何为if-else语句编写多个条件 e、 g.如果条件1和条件2正确,则 我试过使用和,,&和+ 提前感谢在多次尝试后找到了答案: if (userIDread == userID1 && userpassread == userpass){ println("access granted") 通常,检查语言文档中的这些基本功能是一个好主意。下面是布尔运算符的示例 布尔运算的内置操作包括: ||–析取逻辑或

  1    2   3   4   5   6  ... 下一页 最后一页 共 204 页