两个并发字符串替换为kotlin字符串

我有一个错误的指向palenthesis字符串,我想用(同时)替换(同时,我可以做一个单一的替换方法,或者我应该使用循环? 比如我有这个字符串: 你需要额外的时间)或者钱( 这应该是这样的: 你需要额外的时间(或金钱)

Kotlin范围函数与扩展运行

从我学到的东西,它看起来像T.run扩展函数, with具有相同的目的,创造的可能性,在同一个对象上分组多个调用,返回lambda的最后一个对象的结果。 T.run()具有在使用前检查可空性的优点。 (正如本文指出的那样) 使用什么优点? 或更好地说:什么阻止我总是使用T.run()而不是? 谢谢

在Kotlin中共享Float和Double之间扩展函数的实现

注意:这个问题不是generics类,而是generics函数。 (我不认为它是这个的重复:它比这更具体)。 在我们的项目中,我们有一些实用函数来扩展Double和Float ,比如toFixed (受Javascript’s Number.toFixed启发) fun Double.toFixed(digits: Int):String = java.lang.String.format(“%.${digits}f”, this) fun Float.toFixed(digits: Int):String = java.lang.String.format(“%.${digits}f”, this) 如您所见, Double.toFixed和Float.toFixed具有相同的实现。 因为还有其他几个更复杂的扩展function,所以在一个版本(比如Double.toPrecision )中的改进和错误修复必须手动保持同步(使用Float.toPrecision ),这是无聊和容易出错的。 我尝试将重复的实现移动到共享的函数中,但是(正确)它不能在非绑定函数的上下文中访问它。 为了说明,我希望有这样的事情: private fun toFixed(digits: Int):String = java.lang.String.format(“%.${digits}f”, this) fun Double.toFixed = ::toFixed fun Float.toFixed = ::toFixed 如果有什么语言可以摇摆,肯定Kotlin可以! 思考?

嘲笑kotlin中的伴侣对象函数

我正在使用PowerMock和Roboelectric,并且想要模拟一个类的伴侣对象函数。 当我这样做时,我得到一个错误: org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be ‘a method call on a mock’. For example: when(mock.getArticles()).thenReturn(articles); 我所拥有的基本上是这样的: open class MockableClass private constructor(context: Context) { companion object { private val INSTANCE_LOCK = Any() private var sInstance: MockableClass? = null @JvmStatic fun getInstance(context: Context): MockableClass? { synchronized(INSTANCE_LOCK) { sInstance = (sInstance ?: MockableClass(context).let […]

在kotlin android tailrec函数返回0

我试图用这个教程YouTube教程 。 我有一个function如下: fun fact(x:Int):Int{ tailrec fun factTail(y:Int, z:Int):Int{ return if(y == 0) { z } else { factTail(y – 1, y * z) } } return factTail(x,1) } 这个函数在oncreate中被调用为: var abc = fact(5) Log.i(TAG, “5! = $abc”) 当应用输出日志时,显示如下: I/MainActivity: 5! = 0 任何人都可以指出这里有什么问题。

Kotlin合并了两个可空的可变列表

val mutableList1: MutableList? val mutableList2: MutableList? addAll方法可以用来合并可空的可变列表,但是,在这里它会引发我编译时错误。 例: val map1 = listOne?.map { TeamInvitationData(it) } val map2 = listTwo?.map { TeamInvitationData(it) } map1.addAll(map2) types接口失败,请尝试显式指定types参数。 在这里任何方式可以合并这两个数组,事先感谢。

Kotlin显示片段中的types不匹配

里面有一个RecyclerAdapter的片段。 我想在onCreateView方法中初始化适配器,但是在这个语句中抛出了”Type mismatch. Required : Context , Found : FragmentActivity”的错误 我不知道为什么第一个显示这个错误,第二个没有包含编译时错误。 显示错误 recyclerView!!.adapter = RestaurantMenuAdapter(activity) 没有错误显示 recyclerView!!.layoutManager = LinearLayoutManager(activity) Fragment.kt override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_restaurant_menu, container, false) recyclerView = view.findViewById(R.id.restaurant_container) recyclerView!!.adapter = RestaurantMenuAdapter(activity) recyclerView!!.layoutManager = LinearLayoutManager(activity) RecyclerAdapter.kt class RestaurantMenuAdapter […]

RecyclerView – 正确实施SnackBar UNDO删除(Kotlin)

我已经成功实施了swipe从recyclerView删除一个项目。 当一个项目被删除,我想顶部显示一个SnackBar的按钮,让我们添加项目,如果你无意删除。 我选择将滑过的项目存储在variables中并将其删除。 然后,如果用户按下撤消按钮,它将被添加回原来的位置。 这是我做到的: override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { val position = viewHolder.adapterPosition //get position which is swipe if (direction == ItemTouchHelper.LEFT) { //if swipe left val tmp = activeSubs[position] //here I store the temporary Item activeSubs.removeAt(position) adapter!!.removeItem(position) //TODO: translate val layout = find(R.id.active_subs_recycler) Snackbar.make(layout, “Subscription Deleted”, Snackbar.LENGTH_LONG) .setAction(“Undo”, { _ -> […]

在Kotlin中创建来自Spring配置的列表的映射

我正在尝试在Kotlin编写的Spring Boot应用程序中创建Map<String, List>types的对象。 我能够从配置创建一个映射,也能够从配置创建一个列表,但是当我尝试并结合这两个我得到以下exception: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘myConfiguration’: Could not bind properties to MyConfiguration (prefix=, ignoreInvalidFields=false, ignoreUnknownFields=true, ignoreNestedProperties=false); nested exception is java.lang.NullPointerException 我的Configuration Object : @ConfigurationProperties @Component class MyConfiguration { var myNewMap: Map<String, List>? = null } 我的Configuration yml : — myNewMap: firstKey: – 2 – 4 secondKey: – 2 这是可能的方式在阅读配置的Spring? 或者是唯一的方法来创建一个简单的地图的值作为一个逗号分隔的字符串,并把它变成我的应用程序中的列表? […]

Kotlin okhttp3更改json方法为“Post”

val request = Request.Builder() .url(url) .method(“POST”,null) .addHeader(“_Token”,””) .addHeader(“Content-Type”,”application/json”) .build() 这段代码抛出一个exception。 如何添加方法types和标题? 谢谢你的回复。 引起:java.lang.reflect.InvocationTargetException引起:java.lang.IllegalArgumentException:方法POST必须有一个请求体。