为什么Kotlin不需要明确地尝试和捕捉

例如: FileOutputStream(“file”) 会在Kotlin中编译,但是在Java中它会给编译器一个错误。 为什么?

如何传递次kotlin构造函数variables?

我正在研究Kotlin gigasecond锻炼练习的解决方案: http ://exercism.io/exercises/kotlin/gigasecond/readme。 我可以理解它如何需要两个两个构造函数,因为在创建类时传入LocalDate和LocalDateTime参数。 我不明白的是如何将下面的次级构造函数variables传入并在类中使用。 看来只有当传入LocalDateTime参数时才会进行计算,因为只能使用dobWithTime进行计算。 这里发生了什么魔术? data class Gigasecond(val dobWithTime: LocalDateTime) { constructor(dateOfBirth: LocalDate) : this(dateOfBirth.atStartOfDay()) val date: LocalDateTime = dobWithTime.plusSeconds(1000000000) }

在Android studio-Kotlin错误中创建一个新项目

我对Kotlin很新,我正在创建一个支持Android Studio 3.0 Canary中的Kotlin的新项目。 这个项目有两个问题。 R文件没有得到解决 包名称必须是“。” 分离标识符列表 我现在应该怎么做? 提前致谢。

无尽的滚动kotlin回收视图/ ListView

我拼命尝试使用kotlin在Android应用程序上实现无尽的滚动。 所有的教程是无用的,因为他们没有正确解释的东西。 所以例如: https : //github.com/chetdeva/recyclerview-bindings 它看起来很有前途,但作者使用像“把这个在你的BindingAdapter”这样的短语,所以我看看这个BindingAdapter是什么,我发现了一个Java文件,但如果你插入任何东西,我会得到错误。 它像我尝试的任何东西直接失败。 其他的教程是用java编写的,甚至“翻译成kotlin”选项也没用,因为翻译的代码会抛出100个错误。 我尝试了这样的事情: setContentView(R.layout.activity_main) list.layoutManager = LinearLayoutManager(this) list.hasFixedSize() list.adapter = ListAdapter(this, getLists()) val list_view: RecyclerView = findViewById(R.id.list) fun setRecyclerViewScrollListener() { list_view.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) { val height = list_view.getHeight() val diff = height-dy if (diff < 1000){ /*load next list […]

如何调试NoClassDefFoundError(Gradle,Kotlin)

运行时我的kotlin项目,我得到以下错误: java.lang.NoClassDefFoundError: com/julianjarecki/latextemplates/lib/jtwig/RequireNodeParser at com.julianjarecki.latextemplates.lib.jtwig.RequireNodeParserProvider.(RequireNodeParserProvider.kt:8) at com.julianjarecki.latextemplates.lib.jtwig.RequireExtension.configure(RequireExtension.kt:11) at org.jtwig.environment.EnvironmentFactory.create(EnvironmentFactory.java:60) at com.julianjarecki.latextemplates.lib.jtwig.LatexTemplate.getLatexRequireEnvironment(LatexParser.kt:76) at com.julianjarecki.latextemplates.lib.jtwig.LatexTemplate.access$getLatexRequireEnvironment$p(LatexParser.kt:68) at com.julianjarecki.latextemplates.lib.jtwig.LatexTemplate$template$2.invoke(LatexParser.kt:73) at com.julianjarecki.latextemplates.lib.jtwig.LatexTemplate$template$2.invoke(LatexParser.kt:68) at com.julianjarecki.latextemplates.lib.UpdatableLazy.getValue(UpdatableLazy.kt:17) at com.julianjarecki.latextemplates.lib.jtwig.LatexTemplate.getTemplate(LatexParser.kt) at com.julianjarecki.latextemplates.view.MainView$root$1$4$1$1$2.invoke(MainView.kt:133) at com.julianjarecki.latextemplates.view.MainView$root$1$4$1$1$2.invoke(MainView.kt:35) at tornadofx.NodesKt$onDoubleClick$1.handle(Nodes.kt:484) at tornadofx.NodesKt$onDoubleClick$1.handle(Nodes.kt) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) 事实上,当我查看我的buil文件夹时,RequireNodeParser.class不是它应该在的地方。 这个类在RequireNodeParserProvider中是这样引用的: package com.julianjarecki.latextemplates.lib.jtwig import org.jtwig.parser.addon.AddonParserProvider import org.jtwig.parser.parboiled.node.AddonParser import com.julianjarecki.latextemplates.lib.jtwig.RequireNodeParser class RequireNodeParserProvider : AddonParserProvider { override fun keywords(): MutableCollection = mutableListOf(RequireKeywords.REQUIRE.token) override fun parser(): […]

Android Studio(Kotlin)GsonBuilder.registerTypeAdapter()给出2个错误

我正在使用Kotlin插件,并尝试使用GsonBuilder创建一个gsonvariables。 这用于在Java中没有问题,但现在在尝试使用registerTypeAdapter()时,我得到了两个错误,如下所示: val gson = GsonBuilder().registerTypeAdapter(DateTime.class, DateTimeTypeConverter()).create() 对于第一个参数(types),我得到“名称预期”错误。 对于第二个参数(typeAdapter),我得到“期待expression式”的错误

kotlin-js将字符串转换为另一种编码

我解析网站,并得到Windows-1251编码的字符串。 我想打印它到控制台例如。 但在控制台中,我看到了不可理解的符号。 如何可以将Windows-1251字符串转换为UTF-8或如何使用kotlin-js打印正常字符串?

如何在kotlin运行时传递db名称

我已经尝试在kotlin中创建DatabaseOpenHelper。 它不允许我在运行时传递db名称。 class DatabaseOpenHelper (context: Context) : SQLiteOpenHelper(context, “mydb.db”, null, 4) { val TAG = javaClass().getSimpleName() val TABLE = “logs” companion object { public val ID: String = “_id” public val TIMESTAMP: String = “TIMESTAMP” public val TEXT: String = “TEXT” } ….. other methods } 请帮忙。

Kotlin为lambda生成内部类

在我的代码中,我有这样的东西: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) presenter.onCreate() fabContainer.onClick { presenter.onLoginButtonClicked(…) } } 当我反编译apk和检查byteCode,这样的事情出现: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.presenter.onCreate(); Sdk23ListenersKt.onClick((ProgressFloatingActionButton) _$_findCachedViewById(com.prozis.prozisgo.prozisgo.R.id.fabContainer), new ActAuthLogin$onCreate$1(this)); } final class ActAuthLogin$onCreate$1 extends Lambda implements Function1 { final /* synthetic */ ActAuthLogin this$0; ActAuthLogin$onCreate$1(ActAuthLogin actAuthLogin) { this.this$0 = actAuthLogin; super(1); } public final void invoke(View it) { this.this$0.getPresenter().onLoginButtonClicked(StringsKt__StringsKt.trim(((EditText) […]

如何在Kotlin中使用Dagger的2 @Named限定符

最近我遇到了Kotlin的@Named限定符问题。 我认为从这个转变为: var boldTypeface: Typeface? = null [Inject] set 进入这个 var boldTypeface: Typeface? = null [Inject Named(“bold”)] set 要么 var boldTypeface: Typeface? = null [Inject] [Named(“bold”)] set 会解决我的问题。 但它没有,甚至没有编译。