Tag: 科特林

在lambda中使用return?

在下面的代码中,我想显示空的视图,如果旅行是空的,然后返回并避免运行下面的代码,但编译器说:“返回不允许在这里”。 mainRepo.fetchUpcomingTrips { trips -> if (trips.isEmpty()) { showEmptyViews() return } // run some code if it’s not empty } 有没有办法像那样回报? 我知道我可以把它放在一个if else块中,但是如果有其他情况,我讨厌写作,当我有更多的条件时,在我看来这是不太可理解的。

Kotlin:我如何传递一个谓词到CharSequence.any()函数?

我试图找出一个字符是否属于一个字符串。 var s = “abcdef” var result = s.any(‘d’) 但是我不明白这个语法。 从文档 : fun CharSequence.any(predicate: (Char) -> Boolean): Boolean 我怎样才能传递一个谓词的function?

如何在kotlin中使用Android支持typedef注释?

我开发的Android应用程序,经常使用注释作为编译时间参数检查,主要是Android的支持注释 。 java代码示例: public class Test { @IntDef({Speed.SLOW,Speed.NORMAL,Speed.FAST}) public @interface Speed { public static final int SLOW = 0; public static final int NORMAL = 1; public static final int FAST = 2; } @Speed private int speed; public void setSpeed(@Speed int speed) { this.speed = speed; } } 我不想使用枚举,因为他们在Android的性能问题。 自动转换为kotlin只会产生无效的代码。 如何在kotlin中使用@IntDef批注?

kotlin列表上的filterNotNull具有genericstypes

这是工作: val values: List = listOf(“a”, null, “b”).filterNotNull() 这不工作: fun nonNullValues(values: List): List = values.filterNotNull() 编译器抱怨genericstypes: Error:(8, 63) Kotlin: Type parameter bound for T in fun kotlin.collections.Iterable.filterNotNull(): kotlin.collections.List is not satisfied: inferred type A is not a subtype of kotlin.Any 这一个工作: fun nonNullValues(values: List): List = values.filterNotNull() 有人可以请解释我为什么我需要告诉编译器,A是Any的子types? 我在想每个types都是Any的子types… 谢谢!

ListView可以出现在Activity中,但不能出现在Fragment中

ListView可以出现在Activity但不能出现在Fragment但是我在Android Studio 3.0中使用Kotlin中的相同代码? 这是我的片段代码: class testFrag : Fragment() { var adapter : mo3dAdapter?=null var listOfMkabala = ArrayList() override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater!!.inflate(R.layout.fragment_test, container, false) listOfMkabala .add ( MeetingDetails(” nour1″, “ahmed1” , “aya1″)) listOfMkabala .add ( MeetingDetails(” nour2″, “ahmed2” , “aya2″)) listOfMkabala .add ( MeetingDetails(” nour3″, “ahmed3” , “aya3”)) […]

Google Assistant SDK拒绝认证频道为“UNAUTHENTICATED”

我正在尝试在Kotlin为我的Raspberry Pi创建一个Google智能助理。 我使用本IETF草案中提出的所谓“设备流程”实现了OAuth流程,因为我的Raspberry稍后将公开一个Web界面,并且没有任何输入设备或图形界面。 谷歌确实支持这个流程(当然),我最终得到用户同意的有效访问令牌。 为了测试的目的,我也尝试了一个默认授权流程,只是将用户转发到本地主机,因为它通常已经完成,但并没有解决问题。 我使用这个工具测试了访问令牌,并确认了范围和令牌的有效性。 所以令牌本身应该工作。 范围是: https : //www.googleapis.com/auth/assistant-sdk-prototype(如此处所述)这实际上并不指向任何有效的Web资源,而是在每个文档中引用。 然后,我尝试使用gRPC提供的Java存根将音频数据流式传输到助理SDK端点。 如第三方参考实现作为指导如何认证rpc存根。 但是这个参考实现和我自己的都不起作用。 他们都报告 io.grpc.StatusRuntimeException: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. 存根以这种方式进行validation: embeddedAssistantStub.withCallCredentials( MoreCallCredentials.from(OAuth2Credentials .newBuilder() .setAccessToken( myAccessToken, myAccessTokenExpirationDate)) .build())) 并且认证的请求被执行如下: val observer = authenticatedEmbeddedAssistantStub.converse(myStreamObserverImplementation) observer.onNext(myConfigConverseRequest) while(more audio data frames […]

如何将intArray转换为Kotlin中的ArrayList ?

从 val array = intArrayOf(5, 3, 0, 2, 4, 1, 0, 5, 2, 3, 1, 4) 我需要转换为ArrayList 我曾尝试array.toTypedArray() 但它转换为Array而不是

为什么Kotlin lang只允许项目中的单一主要function?

这不会取消在Java中有多个主要入口点的function,可以在需要时调用它。

Kotlin中参数化类的类字面语法

我试图嘲笑Kotlin的一个function Mockito.mock(Function2::class.java) 它说: “只有类才允许在类文字的左边” 。 获得对静态已知参数化类的引用的正确方法是什么? 现在我生活在一个丑陋的演员 Mockito.mock(Function2::class.java) as (Int, Int) -> Unit

在Instant App中应用插件“kotlin-android”会导致“null不能转换为非空types的com.android.build.gradleBasePlugin”

我一直在试图将新公开发布的Android即时应用和Kotlin编程语言结合起来。 在使用以下(标准?)设置创建我的项目后,当我尝试构建应用程序时,出现错误消息“null不能转换为非空typescom.android.build.gradle.BasePlugin” 。 使用Kotlin可以很好的使用标准的“com.android.application”模块; 仅当我尝试在即时应用程序模块中使用它时,才会引发错误。 顶级build.gradle : buildscript { repositories { maven { url ‘https://maven.google.com’ } jcenter() } dependencies { classpath “com.android.tools.build:gradle:3.0.0-alpha1” classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4” } } // … 应用程序模块build.gradle ,其中Kotlin工作: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ // This will work. android { compileSdkVersion 25 buildToolsVersion “25.0.2” defaultConfig { // … } buildTypes { release { […]