我一直试图从一个url解析JSON几个小时,但我太愚蠢了,我猜 我努力了 val result = URL(“http://date.jsontest.com/”).readText() 但它崩溃 java.net.MalformedURLException:无协议:date.jsontest.com 我试过了Klaxon的图书馆 fun parse(name: String) : Any? { val cls = Parser::class.java return cls.getResourceAsStream(name)?.let { inputStream -> return Parser().parse(inputStream) } } val obj = parse(“http://date.jsontest.com/”) as JsonObject 但它也崩溃 kotlin.TypeCastException:null不能转换为非nulltypescom.beust.klaxon.JsonObject 有人可以写在Kotlin最简单的方法来解析从这个链接的数据http://date.jsontest.com/
我一直在试图关注这个博客 ,我已经成功地运行了所有的步骤,但是当我运行最后的命令 konanc $COMPILER_ARGS -target macbook src/main/kotlin/logogen.kt -library build/c_interop/png -linkerOpts “-L/usr/local/lib -lpng” -o build/bin/logogen 我得到的错误,说sqrt,pow,fopen,fclose都没有解决 error: unresolved reference: sqrt 这是我的png.def文件 headers = /usr/local/include/png.h stdio.h stdlib.h string.h math.h 导入它作为我的logogen.kt文件 import png.* 谢谢!
我试图解析一个JSON字符串,如下所示: { “count”: 1, “items”: [ { “organization_id”: 6972979, “organization_name”: “Lorem ipsum dolor sit amet, consectetur adipisicing elit”, } ] } 和Kotlin课堂: class LoremModel { var count: Int? = null var items: List? = null class Lorem { var organization_id: Int? = null var organization_name: String? = null constructor(organization_id: Int?, organization_name: String?) { this.organization_id = […]
我试图做一个自定义ProgressBar的方式,我做了很多以前的自定义布局。 这一次我有问题。 我可以用这个xml实现所需的外观: 然而,最终的目标是在自定义类中进行一些自定义,所以xml缩小到这个范围: 这是自定义类: class HorizontalProgressBar : ProgressBar { constructor(context: Context) : super(context) { initialSetup() } constructor(context: Context, attrs: AttributeSet) : super(context, attrs) { initialSetup() } constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { initialSetup() } fun initialSetup() { max = 100 isIndeterminate = false progressDrawable = context.getDrawable(R.drawable.progress_bar) } } 第二个构造函数被解雇了,但是这个酒吧没有风格。 […]
我正在尝试使用kotlin , gradle和gradle application插件来创建一个简单的HelloWorld应用application 。 当我用下面的设置运行它时,出现以下错误: Error: Main method is not static in class com.petarkolaric.helloworld.Main, please define the main method as: public static void main(String[] args) 我的build.gradle : group ‘helloworld’ version ‘1.0-SNAPSHOT’ buildscript { ext.kotlin_version = ‘1.2.0’ repositories { mavenCentral() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } apply plugin: ‘kotlin’ apply plugin: ‘application’ mainClassName = […]
如何使用Kotlin在SharedPreferences存储数据类实例。 我写这个代码,但它不工作,每次检索数据时,它会产生崩溃。 我必须在本地保存用户预订,并且每次都从首选项中获取 ,并将这些值放在单例中 。 崩溃是: java.lang.IllegalStateException: gson.fromJson(json, BookingResponse::class.java) must not be null. BookingResponse是我的数据类 fun saveResponse(context: Context,bookingResponse: BookingResponse) { val prefs = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE) val prefsEditor = prefs.edit() val gson = Gson() val json = gson.toJson(bookingResponse) prefsEditor.putString(Constants.BOOKING, json) prefsEditor.commit() } /** * Get bookingResponse from the shared preference * * @return Saved BookingResponse */ fun […]
我是Kotlin新手,所以我有这个界面。 interface User { var nickName : String } 现在我想创建一个实现这个接口的类PrivateUser 。 我也要实现抽象成员nickName 。 通过构造函数,它非常简单 class PrivateUser(override var nickName: String) : User 但是当我尝试实现类里面的成员Idea生成我这个代码 class Button: User { override var nickName: String get() = TODO(“not implemented”) set(value) {} } 我很困惑如何进一步实施。
我有代表一个过程中的步骤的函数。 每个function也知道下一步,如果有的话。 我希望能够做到这样的事情: fun fooStep() : Step? { … do something … return ::barStep // the next step is barStep } 这些函数是从一个中央调度函数调用的,它的代码有点像这样: var step = startStep while (step != null) { step = step() } 请注意,特定步骤中的逻辑也决定下一步,如果有的话。 我以为我可以定义为: typealias Step = () -> Step? 所以一个Step是一个返回另一个Step的函数,或者是null。 但是,这不能编译: Kotlin: Recursive type alias in expansion: Step 我可以通过将函数包装在一个对象中来解决这个问题。 例如: data […]
我以为在Kotlin, Unit就相当于Void 。 使用Vert.x服务发现,不可能传递Future来unpublish(String id, Handler<AsyncResult> resultHandler) (给出types不匹配),但它将接受Future没有任何问题。 为什么是这样的,有没有一个解决方案,或者我只需要生活在使用Void ?
Java有原始语言,因为使用它们会导致比基于类的对应语言更高效,可读和更少错误的代码 。 Kotlin是否执行编译时优化以确保编号操作与Java基元相同(或更好)的性能?