我是function风格编程的世界相当新的我正在尝试在Kotlin的一些代码,下面给出的代码片段是我所做的,但看起来这么强迫我 @EmailTemplate(“onCallTemplate”) fun retrieveNextOnCallCreateMailRecipientAndSendMail(time: LocalDateTime, trial: Boolean = true) { val emailTemplateID = extractEmailTemplateValue( “retrieveNextOnCallAndSendMail”) val messageTemplate = emailTemplateID?.let { messageTemplateAccessPoint.findByID(it) } val lisOfOnCalls = dataHubCommunicator .listOfOnCallToSendNotificationFromDataHub(time) val listOfMailRecipient = lisOfOnCalls ?.let { onCallListToMailRecipient.buildMailRecipientFromOnCalls(it) } listOfMailRecipient ?.let { messageTemplate ?.let { it1 -> emailSender .sendNotificationToOnCallPersons(it, it1, trial) } } log.info(“Message Has been sent Successfully”) } […]
我想要实现的是打开一个连接到我的firebase数据库,并获得一些我需要解析的数据。 我正在使用Spring Boot框架,firebase,kotlin和gradle的admin sdk。 在Windows 10上,它是像预期的那样工作,但是当我尝试在我的Linux服务器上运行.jar文件时,它不会得到任何数据或错误。 它被困在ValueEventListener中。 我有ufw安装,但禁用它或添加端口5228:5230(tcp / udp),没有解决问题。 val dataMinifiedRef = database.reference.child(“minifiedData”).child(“areas”) dataMinifiedRef.addListenerForSingleValueEvent(object : ValueEventListener { override fun onCancelled(error: DatabaseError?) { log.info(error!!.message) } override fun onDataChange(dataSnapshot: DataSnapshot) { log.info(“Got data”) } }) 编辑:这是我解析服务帐户。 val str = “{\n” + … “}\n” // convert String into InputStream val serviceAccount = ByteArrayInputStream(str.toByteArray()) val options = FirebaseOptions.Builder() […]
我正在用Spring 5 Webflux和Kotlin编写一个简单的应用程序。 我正在尝试以下列方式实现PUT端点: PUT(“/confs/{id}”, { val id = it.pathVariable(“id”) ServerResponse.ok().body(service.save(it.bodyToMono(Item::class.java)), Item::class.java) }) 保存技巧是我尝试从项目中读取城市名称,解析地理坐标,在原始项目中覆盖它们,然后使用Spring Data Mongo Reactive回购保存到Mongo。 fun save(item: Mono): Mono { val geo = item.flatMap { val city = it.location?.city ?: “Somewhere” geoService.resolveGeoFromCity(city) } val zipped = item.zipWith(geo) .map { it.t1.location?.geo = it.t2 it.t1 } return repo.saveAll(zipped) .toMono() } 解析地理坐标的代码在这里: @Service class GeoService() { […]
我的应用程序有一个广播接收器来监听ACTION_POWER_CONNECTED变化,并依次标记屏幕保持。 我所缺少的是应用程序在第一次运行时检查充电状态的能力。 任何人都可以请帮我用代码手动检查充电状态?
我花了一些时间与我的错误,但没有任何积极的结果,所以我可能有人可以帮助。 我的项目中有3个模块:应用程序(android),数据,域 – 都是纯kotlin。 所有DI都在应用程序模块中。 ApplicationComponent&ApplicationModule: @Singleton @Component(modules = arrayOf(ApplicationModule::class, NavigatorModule::class, RepositoryModule::class, FirebaseModule::class, SchedulerModule::class, UseCaseModule::class)) interface ApplicationComponent { fun injectApplication(application: Application) fun loginSubComponent() : LoginSubComponent } @Module class ApplicationModule(private val application: Application) { @Provides @Singleton fun provideApplication() = application } @Module class UseCaseModule { @Provides @Singleton fun provideLoginAccountUseCase(scheduler: ComposeScheduler, repository: AccountRepository) = LoginAccountUseCase(scheduler, repository) @Provides […]
研究Kotlin的Unittypes,这是一个基本上代表Java的void的object 。 在某些情况下,我想在onClick数据绑定中使用PublishSubject来基本上只是点击点击。 Android的XML看起来像这样: viewModel.navigateSubject.onNext(Unit)}” /> 在layout我介绍了这种types: […] 然而,以这种方式对象types的调用当然是不可能的,有没有人find一种方法来使用android xml Unittypes?
我试图让OpenCV检测我的纸张图像的角落。 到目前为止,我能够检测到边缘,HoughLinesP能够检测到我的线条,我想。 我的代码如下: Imgproc.HoughLinesP(matDrawing, matLines, 1.0, Math.PI / 180, 70, 30.0, 10.0) val arrayListCorners = ArrayList() for (i in 0 until matLines.rows()) { for (j in i + 1 until matLines.rows()) { val arrayLine1 = matLines.get(i, 0) val arrayLine2 = matLines.get(j, 0) // Detect if arrayLine1 and arrayLine2 did intersect? } } 我需要帮助,如果我怎么能检测两条线是否相交。 我需要我的arrayListCorners正好返回4,以便能够在代码的后面部分传递条件。 我正在使用Kotlin。 […]
我试图写一个有效的解决方案,以通用的地图/filter范例。 在Kotlin中,你可以编写如下的代码: schedule.daysOfWeek.map { it.adjustInto(today) as LocalDate } .filterTo(datesOnSchedule) { it.isBefore(endDate) } 一般来说,我正在应用一个地图,然后根据一个条件过滤映射的值。 但是,为此创建了一个中间集合。 这似乎没有必要。 我写了一个小function,应该做同样的事情,但没有中间收集。 inline fun Iterable.mapThenFilter(predicate: (R) -> Boolean, transform: (T) -> R) { mapThenFilter(ArrayList(), predicate, transform) } inline fun <T, R, C : MutableCollection> Iterable.mapThenFilter(collection: C, predicate: (R) -> Boolean, transform: (T) -> R): C { for (element in this) { […]
我有代码: package com.example.admin.maytinh import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import com.example.admin.maytinh.R.id.button import com.example.admin.maytinh.R.id.editText import com.example.admin.maytinh.R.id.editText2 import com.example.admin.maytinh.R.id.editText3 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener(View.OnClickListener{xuly()}) } public fun xuly(){ val a:Int = editText.text.ToString().ToInt() val b:Int = editText2.text.ToString().ToInt() val c:Int = a + b editText3.text = c.ToString() } } 当我运行它时,我收到错误: 未解决的引用setOnClickListener […]
我只是安装插件,并开始转换它,它会引发exception 插件错误:Kotlin抛出未捕获的NoReadAccessException。 禁用插件NoReadAccessException 读取访问权限只允许从事件派发线程或内部读取操作(请参阅com.intellij.openapi.application.Application.runReadAction())详细信息:当前线程:Thread [ApplicationImpl spoled thread 1,4,main] 355602237; 调度线程:false; isDispatchThread():false SystemEventQueueThread:Thread [AWT-EventQueue-0 2.3#AI-162.4069837 Studio,eap:false,os:Windows 7 6.1,java-version:JetBrains sro 1.8.0_112-release-b06,6,main] 1229449779