Kotlin:如何使用第一个参数的默认值进行函数调用,并为第二个parameter passing一个值?

我想知道如何调用默认参数的函数,当你想指定第二个参数的值。 在下面的简单例子中,我展示了addTwo()接受两个参数。 ‘第一’参数有一个默认值,但’秒’没有。 我将如何调用这个函数,指定我想使用默认值为’第一’与给定值为2’秒’? 调用addTwo(2)会引发错误。 fun main(args: Array) { var sum = addTwo(1,2) // works fine var nextSum = addTwo(2) // ERROR: No value passed for parameter second } fun addTwo(first: Int = 0, second: Int): Int { return first + second }

为什么我们不能用一个get来重写一个val属性,而不用初始化呢?

我刚刚开始学习Kotlin。 我想知道为什么我们无法将重写的val属性的get()方法用作var,而无需初始化它。 但是,如果重写为val则不需要初始化。 open class Foo { val y = 21 open val x: Int get() { return 10 * y } } class Bar : Foo() { override var x: Int = super.x * 10 //If overridden as val works without initialisation get() { return super.x * (super.x * 10) } } fun main(args: […]

运行Spek测试显示错误“空测试套件”

与Kotlin熟悉了一下,我想介绍一下另一个Android-Java项目,作为测试的第一步。 我决定直接与Spek开始。 我添加了以下依赖关系来构建要测试的模块的渐变: testCompile ‘junit:junit:4.12’ testCompile “org.jetbrains.kotlin:kotlin-stdlib:1.0.2” testCompile “org.jetbrains.kotlin:kotlin-test-junit:1.0.2” testCompile “org.jetbrains.spek:spek:1.0.25” 其中我使用了SimpleTest类的git仓库的spek-samples: import org.jetbrains.spek.api.Spek import kotlin.test.assertEquals class SampleCalculator { fun sum(x: Int, y: Int) = x + y fun subtract(x: Int, y: Int) = x – y } class SimpleTest : Spek({ describe(“a calculator”) { val calculator = SampleCalculator() it(“should return the result of adding […]

在Android上使用Wi-Fi创建P2P连接:创建BroadcastReceiver类

我正尝试在Android上创建Wi-Fi P2P连接。 我指的是API https://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html,但我坚持创建BroadcastReceiver类。 它说:“现在创建一个新的BroadcastReceiver类,用来监听系统的Wi-Fi P2P状态的变化。在onReceive()方法中,添加一个条件来处理上面列出的每个P2P状态变化。 @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) { // Determine if Wifi P2P mode is enabled or not, alert // the Activity. int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1); if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) { activity.setIsWifiP2pEnabled(true); } else { activity.setIsWifiP2pEnabled(false); } } else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) […]

建立一个多平台项目

考虑Kotlin 1.2引入了kotlin-platform-common我试图建立我的第一个普通的.class文件,所以我做了如下: main.kt : package hello fun main() { println(“kotlin!”) } gradle.build : group ‘h’ version ‘prn’ buildscript { ext.kotlin_version = ‘1.2.0’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } apply plugin: ‘kotlin-platform-common’ repositories { mavenCentral() } dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version” } sourceSets { main.kotlin.srcDirs += ‘src/kotlin’ main.resources.srcDirs += ‘src/resources’ } jar { […]

为什么在构建这个项目时出现“找不到assembly描述符”错误?

我有一个写在科特林的小项目 。 当我运行clean compile assembly:single install ,我得到以下错误信息: Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5:single (default-cli) on project alma-econsim: Error reading assemblies: No assembly descriptors found. -> [Help 1] 我的jar-with-dependencies.xml位于src / main / assembly中,并在pom.xml中引用,如下所示: maven-assembly-plugin 2.2-beta-5 assembly single package src/main/assembly/jar-with-dependencies.xml 但是我仍然得到错误。 我怎样才能纠正我的项目,以便能够将其打包为具有依赖项的jar?

SwipeRefreshLayout和RecyclerView之间的差距

如何消除这两者之间的空隙? RecyclerView现在开始靠近屏幕的一半,从第一个元素到工具栏都有空白区域。 (只有当我添加足够的物品recyclerview开始顶部)。 我正在使用Kotlin和AnkoLayouts。 override fun createView(ui: AnkoContext): View = with(ui) { return relativeLayout { lparams(width = matchParent, height = matchParent) addItemButton = floatingActionButton { imageResource = android.R.drawable.ic_input_add }.lparams { margin = dip(10) alignParentBottom() alignParentEnd() alignParentRight() gravity = Gravity.BOTTOM or Gravity.END } swipeRefreshLayout = swipeRefreshLayout { rv = recyclerView { layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, true) […]

StackOverflowError序列化递归JSON

我有一个基本的用户类,其中包括一个用户名和一个朋友variables: data class User ( val username: String, @ManyToMany(fetch = FetchType.EAGER) @JoinTable( name = “users_friends”, joinColumns = arrayOf(JoinColumn(name = “user_id”, referencedColumnName = “id”)), inverseJoinColumns = arrayOf(JoinColumn(name = “friends_id”, referencedColumnName = “id”))) val friends: Collection?) 我从一个springboot控制器调用内置的kotlin函数getFriends(): @ApiOperation(“Get Friends”) @RequestMapping(value = “/friends”, method = RequestMethod.GET) public Collection getFriends(@RequestParam final String username) { return userService.getFriends(userService.findByUsername(username).get()); } 其中调用该服务: @Override […]

当应用程序处于非活动状态时,通知显示android图标,而不显示应用

我遵循默认的firebase指南来设置android推送通知,但是通知会显示android图标,当应用程序在api 26中处于非活动状态时,当它显示应用程序图标时,也不会在redmi note 4设备中显示通知。 使用本指南转换为kotlin: https ://firebase.google.com/docs/cloud-messaging/android/client

创建XML文件时出现卡顿exception

我正在Android Studio上的Kotlin工作。 该项目编译和工作完美,但后来当我尝试创建一个新的XML文件,我不断得到一个kaptexception“注释处理exception”。 我试图创建XML文件,右键单击res文件夹 – >新建 – >布局资源文件,我也尝试右键单击res文件夹 – >新建 – > XML – >布局XML文件。 这是我的完整项目gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = ‘1.1.2-5’ repositories { jcenter() google() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” // NOTE: Do not place your application dependencies here; […]