我正在学习春季引导和新kotlin。 此Java函数转换为kotlin代码时将报告错误。 如何重写这个kotlin函数? https://spring.io/guides/gs/consuming-rest/ @Bean public CommandLineRunner run(RestTemplate restTemplate) throws Exception { return args -> { Quote quote = restTemplate.getForObject( “http://gturnquist-quoters.cfapps.io/api/random”, Quote.class); log.info(quote.toString()); }; } 将这些代码转换成kotlin后, @Bean @Throws(Exception::class) fun run(restTemplate: RestTemplate): CommandLineRunner { return { args -> val quote = restTemplate.getForObject( “http://gturnquist-quoters.cfapps.io/api/random”, Quote::class.java) log.info(quote.toString()) } } 请告诉我如何更正此代码。
我列出了List 。 我的模特class: class DaywiseEvents() { var calendar: String? = null var event:CSCalendarEvent? = null } class CSCalendarEvent { var eventId: Long = 0 var eventTitle: String? = null var eventStartTime: Long = 0 } 我必须应用函数,如果列表不包含一天,那么我们需要添加项目在最后的位置,因为我想这样,但我无法添加项目数组列表中。 fun containsDay(list: List, value: String): Boolean { for (o in list) { if(o != null && AppUtils.convertSimpleDayFormat(o!!.event?.eventStartTime!!).equals(value)!!) { return […]
Android Lint在此代码示例中拾取字符串常量,作为“dWQGSCDx”上的拼写错误。 根据文档,我应该使用@SupressLint(“Typos”)来压制它,但是没有达到那个效果。 我看到其他人建议使用@SuppressWarnings,但是这也不起作用。 /** * Constants.kt */ import android.annotation.SuppressLint @SuppressLint(“Typos”) @SuppressWarnings(“SpellCheckingInspection”) const val SOME_STRING_VALUE = “…dWQGSCDx…” 注意这是一个文件范围的全局常量,它不在一个类中,所以注释不能放在一个包含的类上。 如何在不完全禁用拼写检查的情况下抑制此常量定义的拼写检查,并且不向字典中添加“mispelt”文本?
我尝试使用下面的一段代码,但它没有给我的数字。 您的信息将是很大的帮助。 代码如下: val subscription =SubscriptionManager.from(context).activeSubscriptionInfoList for (subscriptionInfo in subscription) { val number = subscriptionInfo.number Log.e(“Test”, ” Number is ” + number) }
我一直在关注Hannes Dorfman的MVI教程 ,他提到通过Dagger注入一个函数让代码看起来类似于下面的代码: 注入function: @Provides @Singleton fun providesModelFunc( searchEngine: SearchEngine): Function1<Observable, Observable> = { stringObservable -> stringObservable.startWith(“”).flatMap { queryString -> searchEngine.search(queryString) } } 函数( modelFunc )在类中使用: subscription = modelFunc( // model() view.searchIntent() // intent() ) .observeOn(AndroidSchedulers.mainThread()) .subscribe( // view() view.showData(), view.showError() ) 我一直在试图实现一个类似的东西,但不是在Kotlin,到目前为止在Module的function建设罚款: @Provides @Singleton Function<Observable, Observable> providesSearchFunction(DiscogsInteractor discogsInteractor) { return searchViewQueryTextEventObservable -> searchViewQueryTextEventObservable.flatMap(queryString -> […]
如果我有一个像”mypackage.MyClass”字符串,我怎么能在运行时(从JVM)获得相应的KClass ?
我有一个风暴螺栓,获取包含MyClasstypes值的元组,该元组又包含一个时间字段startTime 。 在bolt的最后,我想记录从头开始处理的时间(用startTime标记)。 所以我可以这样做: override fun doExecute(input: Tuple): Boolean { … // my processing logic input.values.filterIsInstance(MyClass).forEach { val endToEndTime = (System.currentTimeMillis() – it.startTime).toInt() stats.recordExecutionTime(“mytag”, endToEndTime) } } 这种方法我真的没有问题。 只是整容明智,它看起来像我可以在元组中有多个MyClass实例(我不这样做)。 所以我想,如果我能从列表中选出第一个: override fun doExecute(input: Tuple): Boolean { … // my processing logic input.values.filterIsInstance(MyClass).first().let { val endToEndTime = (System.currentTimeMillis() – it.startTime).toInt() stats.recordExecutionTime(“mytag”, endToEndTime) } } 这似乎更具可读性。 但是,如果filterIsInstance(MyClass)调用返回一个空列表,我通过first调用它来获得一个exception,而第一个解决方案没有任何exception。 […]
我需要将一个字符串拆分成一个整数数组。 我试过这个: val string = “1234567” val numbers = string.split(“”).map { it.toInt() } println(numbers.get(1)) 但引发以下exception: 线程“main”中的exceptionjava.lang.NumberFormatException: 对于输入字符串:“”在java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.lang.Integer.parseInt(Integer.java:592)在java.lang.Integer.parseInt(Integer.java:615 )at net.projecteuler.Problem_008Kt.main(Problem_008.kt:54) 如何将字符串“123456”转换为数组[1,2,3,4,5,6]?
我有Observable和Rate是一个简单的对象: Rate(val value:String){} Rates(val rates: List) 我想将Observable改为Observable<HashMap 。 Rates(arrayOf(Rate(“1”),Rate(“2”), Rate(“3”),Rate(“3”), Rate(“2”),Rate(“2”)))我期望的结果: (1 -> 1) (2 -> 3) (3 -> 2) (4 -> 0) (5 -> 0) 我开始创建这样的东西: service.getRates() .flatMap {it-> Observable.from(it.rates) } .filter { !it.value.isNullOrEmpty() } .groupBy {it -> it.value} .collect({ HashMap()}, { b, t -> b.put(t.key, t.count???)} 但我卡在这里,我不知道所有的价值? 我不知道如何添加空值(0),如果没有5个4.有没有办法使用rx做到这一点?
var listOfNums = listOf(1,9,8,25,5,44,7,95,9,10) var mapOfNums = listOfNums.map { it to it+1 }.toMap() println(mapOfNums) 结果 {1=2, 9=10, 8=9, 25=26, 5=6, 44=45, 7=8, 95=96, 10=11} 当我需要这个结果时,它将下一个元素的内容添加到当前元素,而我需要将当前元素映射到下一个元素 我的目标结果 {1=9, 8=25, 5=44, 7=59, 9=10}