我想在Kotlin.js中使用Redux / React ,但是我只发现Android的Redux / React库(如redux-kotlin )。
从终端运行测试: ./gradlew testAppReleaseUnitTest –tests namespace.test.class 抛出: java.lang.SecurityException at Class.kt:42 从android studio运行相同的测试工作正常。 任何想法为什么?
class MainActivity:AppCompatActivity(){ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
我想创建一个使用anko自定义元素的警告对话框。 我find的每个指南和教程都使用这种方法: alert { customView { textView(“Hello”) } }.show() 但是我在customView出现错误: Error:(73, 13) Type inference failed: Not enough information to infer parameter T in inline fun Activity.customView(theme: Int = …, init: T.() -> Unit): T Please specify it explicitly. Anko有什么变化,而且没有记录?
我期待取代 private static final Logger log = Logger.getLogger(MyClass.class); 有些东西是不那么冗长和更习惯的 class MyClass { companion object { val log = LoggerFactory.getLogger(MyClass::class.java) } fun usage() { log.debug(“Success”) } } 奖励积分不必在每个class级去除它。 我试过了: interface HasLogger { val log: Logger get() = LoggerFactory.getLogger(this.javaClass) } 但是这导致getLogger()调用每个用法(不可接受)也返回一个记录器的子types(而不是它声明的)。
我正在使用IntelliJ在Kotlin中进行编程实验。 我想检查我的实体findOne()返回是否存在通过检查是否为空,但IntelliJ显示警告: 条件’visitRankEntity!= null’总是’真’ 我在这里错过了什么? 为什么IntelliJ显示警告? @编辑 好的,当我加入时警告消失了? VisitRankEntity之后,所以行看起来像: var visitRankEntity: VisitRankEntity? = visitRankRepository.findOne(WebfineryUtils.getDomainName(url)) 既然我是Kotlin的新手,我忘了? 。 但是,如果该方法可以返回null,IntelliJ应该不会告诉我这个事实吗?
我正在通过查询Dialogflow代理程序在Kotlin中构建一个chatbot Android应用程序。 我正在使用Dialogflow Android客户端github存储库自述文件和该存储库中提供的示例应用程序作为构建应用程序的基础。 如上所述, AIConfiguration.SupportedLanguages java代码AIConfiguration.SupportedLanguages工作: import ai.api.android.AIConfiguration; ….. private void initService(final LanguageConfig selectedLanguage) { final AIConfiguration.SupportedLanguages lang = AIConfiguration.SupportedLanguages.fromLanguageTag(selectedLanguage.getLanguageCode()); ….. 你可以在这里find完整的用法。 当我在Kotlin中实现时: import ai.api.android.AIConfiguration …. private fun initService() { //final AIConfiguration.SupportedLanguages lang = AIConfiguration.SupportedLanguages.fromLanguageTag(selectedLanguage.getLanguageCode()); val config = AIConfiguration(CLIENT_ACCESS_TOKEN, AIConfiguration.SupportedLanguages.EnglishGB, AIConfiguration.RecognitionEngine.System) …. 在Android 3.0中,我得到了ALConfiguration.SupportedLanguages的“ Unresolved reference:SupportedLanguages ”的AIConfiguration.SupportedLanguages 。 AIConfiguration.RecognitionEngine解决得很好。 为什么这个问题会发生? 我可以实施哪些解决方案/解决方案? 我的更高级别的build.gradle文件: apply plugin: […]
是否有可能作为内联lambda参数接收一个函数types,它具有保证的返回typesR但可变参数的数量 ? 为简单起见,请考虑以下几点: inline fun Boolean?.tfn(tru:()->R, fls:()->R, nul:()->R) = if (this == null) nul() else if (this) tru() else fls() 让我们假设我有其他的内联函数,也可能是(A)->R或(A,B)->R或(A,B,C)->Rtypes的lambda参数 ,其参数我想传递给这个函数。 他们都将提供一个R但是他们都必须被调用来获得R ,而不知道这个函数中参数的数量/types/值。 有没有办法一般修改上面的function: 捕获返回R作为其输入的任何lambda参数的一般情况 避免对将调用此函数的其他内联函数进行任何更改 保持内联效率
你可以在我的回购中find所有的代码: https : //github.com/NWuensche/BookNotes/tree/add-room-db 我得到以下错误: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nwuensche.booknotes, PID: 22753 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nwuensche.booknotes/com.nwuensche.booknotes.MainActivity}: java.lang.RuntimeException: cannot find implementation for com.nwuensche.booknotes.model.AppDatabase. AppDatabase_Impl does not exist at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2684) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2751) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1496) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6186) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.RuntimeException: cannot find […]
哪个解决方案比较好? 使用可空lambda或传递空lambda作为默认参数? kotlin会不会优化空lambda? 或者创建一个什么都不做的新实例? class Test1(val action: () -> Unit = {}) 不幸的是我不明白生成的字节码。 让我们分析一下 val test11 = Test1() 反编译后给我们 private static final Test1 test11 = new Test1((Function0)null, 1, (DefaultConstructorMarker)null); 最后作为一个lambda传递这样的东西 var1 = (Function0)null.INSTANCE; 编辑:隐藏的问题是:Kotlin如何将空lambda作为默认值?