我想从package io.dropwizard.validation;使用@OneOf注解package io.dropwizard.validation; Java用法: @OneOf(value = {“m”, “f”}) Kotlin用法:??? 我试过这个: @OneOf(value = arrayOf(“m”, “f”)) 和这个: @OneOf(value = [“m”, “f”]) 我得到的是: types推断失败。 期望的types不匹配: 必需:字符串 find: Array Kotlin版本:1.1.2-2
我有我的Kotlin Android项目的以下依赖项{ dependencies { … testImplementation “org.junit.platform:junit-platform-engine:1.0.2” testImplementation “org.junit.platform:junit-platform-gradle-plugin:1.0.2” testImplementation “org.junit.platform:junit-platform-launcher:1.0.2” testImplementation “org.junit.platform:junit-platform-suite-api:1.0.2” testImplementation “org.junit.jupiter:junit-jupiter-api:5.0.2” testImplementation “org.junit.jupiter:junit-jupiter-engine:5.0.2” testImplementation “org.junit.jupiter:junit-jupiter-params:5.0.2” } 运行我的测试时得到的错误是: org.junit.platform.launcher.core.DefaultLauncher handleThrowable WARNING: TestEngine with ID ‘junit-vintage’ failed to discover tests java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter … Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.Filter Exception in thread “main” java.lang.NoSuchMethodError: org.junit.platform.launcher.Launcher.execute(Lorg/junit/platform/launcher/LauncherDiscoveryRequest; 如果我的测试引擎id是junit-vintage ,那么是否可以改变它? 它似乎仍然使用junit 4引擎。 我怎样才能改变这个,所以它使用junit-jupiter? 我从我的依赖中删除了junit-4.12,所以我想知道为什么它使用junit-vintage引擎而不是junit-jupiter。 目前使用: Android Studio 3.0 […]
我很早就看到D(比如昨天在寻找Kotlin基准之后…),并且正在试图决定它是否是我想要应对的语言。 我试图从命令行通过一些参数,我有点惊讶。 假设我通过“-Foo-Bar”。 我的程序很简单: import std.stdio; void main(string [] args) { foreach(arg; args) { writeln(arg); } } 来自Java,我期望它打印 -foo -酒吧 但是我的D程序似乎收到它的位置作为第一个参数? 输出是: /首页/(用户名)/ Java_Projects / HelloD / hellod -foo -酒吧 我试图寻找这个,但所有的谷歌命中是指Java的-D开关…所以,这是预期的行为? 如果是,有谁知道为什么?
我正在做一个应用程序,需要经常查询服务器的更新。 我尝试了jobScheduler,但是由于牛轧糖,他们的频率限制在15分钟或更多的时间间隔。 此外,根据这个网站https://medium.com/til-kotlin/jobintentservice-for-background-processing-on-android-o-39535460e060 ,奥立奥现在杀了几分钟后长时间运行的后台进程。 我发现唯一可行的解决方案就是使用firebase,但是对于100多个用户来说,它的成本是25美元/月,而且我认为可以在没有播放服务的情况下删除任何设备。 有任何想法吗?
在我的科特林代码,我得到types不匹配(推断types是INT,但布尔是预期的)错误。 fun main(args: Array) { var i = args.size while (i–){ println(args[i]) } }
我正试图在RxJava2和Kotlin中实现一个刷新令牌流,并且在处理错误时遇到了问题。 有几个请求需要按顺序完成,但是如果有一些错误,顺序会有所不同。 基本上,如果我尝试使用我的刷新令牌并接收400 – Bad Request响应,因为令牌无效,我需要终止流并且不执行下一个switchMap (理想情况下,我想返回最终的Observable )。 但我不知道如何做到这一点。 如果我使用onErrorReturn ,我只是将返回的结果传递给下一个切换映射。 而doOnError只是在请求失败的时候执行这个步骤,但是整个序列还在继续。 fun refreshToken(): Observable { // try to use the refresh token to obtain an access token return authRepository.refreshToken(token) .switchMap { response -> // process response here userRepository.getUser() // fetch user details }.doOnError { // TODO – return final result, do not jump to […]
我在Kotlin中使用Anko设计了一个非常简单的表格,表格中有一个名为_id的主键,我希望_id是由SQLite系统自动传递的值。 我已经阅读了一些示例代码,但是我不知道哪一个是正确的,方法1,方法2还是方法3? 还有更多,当我插入一个记录时,我不认为我需要传递一个值给_id,但是MSetting和DBSetting的_id属性必须传递值,所以我必须用MSetting(10L,”My Settings”,2000L,”This is description!”)我不知道Anko如何处理不必要的_id,我很奇怪,当执行SettingManage().addSetting(MSetting(10L,”My Settings”,2000L,”This is description!”))时,应用程序不会崩溃SettingManage().addSetting(MSetting(10L,”My Settings”,2000L,”This is description!”))重复! 方法1:将 DBSettingTable._ID to INTEGER + PRIMARY_KEY+ UNIQUE, 方法2:将 DBSettingTable._ID to INTEGER + PRIMARY_KEY+ AUTOINCREMENT, 方法3: DBSettingTable._ID to INTEGER + PRIMARY_KEY, 插入数据 SettingManage().addSetting(MSetting(10L,”My Settings”,2000L,”This is description!”)) 设计表 class DBSettingHelper(mContext: Context = UIApp.instance) : ManagedSQLiteOpenHelper( mContext, DB_NAME, null, DB_VERSION) { companion object { val DB_NAME […]
我正在尝试Kotlin中的reflectionfunction,但似乎无法理解如何获取KType值。 假设我有一个将短语映射到对象工厂的类。 在不明确的情况下,用户可以提供一个type参数,将搜索范围缩小到仅返回该types对象(或某个子types)的工厂。 fun mapToFactory(phrase: Phrase, type: KType = Any::class): Any {…} type需要接受几乎任何东西,包括Int ,这从我的经验似乎有点特别对待。 默认情况下,它应该是Any东西,这意味着“不排除任何工厂”。 如何分配默认值(或任何值)来type ?
我试图从Clojure向量中移除元素: 请注意,我正在使用Kotlin的Clojure操作 val set = PersistentHashSet.create(“foo”) val vec = PersistentVector.create(“foo”, “bar”) val seq = clojure.`core$remove`.invokeStatic(set, vec) as ISeq val resultVec = clojure.`core$vec`.invokeStatic(seq) as PersistentVector 这相当于下面的Clojure代码: (remove #{“foo”} [“foo” “bar”]) 代码工作正常,但我注意到,从seq创建一个向量非常慢。 我写了一个基准,结果如下: | Item count | Remove ms | Remove with converting back to vector ms| —————————————————————– | 1000 | 51 | 1355 | | 10000 […]
任何想法为什么模拟器的摄像头(通过笔记本电脑摄像头路由)将工作,但手机的相机会产生完美的黑色照片? 我一直试图得到一个Kotlin你好,世界android.hardware.camera2应用程序的工作,需要高品质的照片按夜间天空摄影的时间表。 这是我第一次进入Android编程,我第一次使用android.hardware.camera2,所以我猜我错过了一些愚蠢的东西。 笔记本电脑摄像头拍摄非常黑暗的照片,但是当您手动照亮照片时,可以告诉他们正在工作。 但是,在设备(Pixel)上运行时,图片是纯黑色的。 我以为我把所有东西都设置为全自动模式 ,等待一秒钟就可以让相机对焦,但也许我需要在预览开始后等待一秒钟? 我最好的猜测是,没有一个实时预览窗口是不寻常的,它是搞砸了。