Tag:

Java中的Kotlin内部类可公开显示

我正在Kotlin开发一个Android 加密库 。 我有一些在Java应用程序中公开可见的internal类。 在文件中find这个 。 internal声明在Java中public 。 internal类的成员通过名称修改,使它更难以从Java意外使用它们,并允许根据Kotlin规则相同签名的成员不能相互看到的成员超载; 有没有办法解决这个问题?

初始化有getter和setter的字段?

我在Kotlin创建了一个有示例字段的类 class SomeClass { var smth: String = “Initial value” get() = “Here it is” set(value) { field = “it is $value” } } 当我创建一个类的对象并调用smth字段时,它将会调用get()属性。 val myValue = SomeClass().smth// myValue = “Here it is” 所以,问题是:为什么我们必须初始化一个有getter的字段? var smth: String // Why this gives error? get() = “Here it is” set(value) { field = “it is $value” […]

无法使用Kotlin在我的Android应用程序中为全局variables创建一个类

我试图在我的应用程序中定义一个全局variables它是说,属性必须定义或抽象。 我看了,并试图复制一些soltuions,但似乎无法得到它的工作 任何意见赞赏。 package com.example.app.thisweekintown import android.app.Application class GlobalVars:Application() { var isConnected:Boolean }

初始块位置在Kotlin上课

我最近遇到了一种情况,我的标准variables的值被默认值所替代,即使我已经使用init块的构造函数赋值了。 我试过的是: class Example(function: Example.() -> Unit) { init { function() } var name = “default name” } // assigning it like this: val example = Example { name = “new name” } // print value print(example.name) // prints “default name” 在挣扎了一下之后,我发现init块的位置很重要。 如果我把init块放在类的最后一个,它首先用缺省值初始化名称,然后调用用“new name”替换值的函数()。 如果我把它放在第一,它没有find名称,它被替换为“默认名称”时,属性被初始化。 这对我来说很奇怪 任何人都可以解释为什么发生这种事

Android kotlin:无法读取类文件

编辑:这比我想象的简单得多,我只需要清理项目! 我试图在一个包含GridView的片段中定义一个接口,以强制任何将附加片段来实现该接口和onImageSelected方法的活动。 有一次,我检查活动是否正确实现了接口,我把它转换到一个回调对象。 class MasterListFragment : Fragment(){ lateinit var mCallBack: OnImageClickListener interface OnImageClickListener{ fun onImageSelected(position: Int) } override fun onAttach(context: Context?) { super.onAttach(context) if(context !is OnImageClickListener) throw ClassCastException(context.toString() + “must implement OnImageClickListener”) else mCallBack = context } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater?.inflate(R.layout.fragment_master_list, container, false) var adapter […]

在Kotlin中调用构造函数的参考

如果我有一个像这样的科林类: data class Anim (val name : String , var age : Int) { constructor (a:Anim):this(a.name, a.age) { } constructor () :this(“Dog”) { } } 我想使用构造函数的参考语法, val a = ::Anim 那么我得到这个错误: overload resolution ambiguity: public constructor PornModel() defined in com.ripple.PornModel public constructor PornModel(a: PornModel) defined in com.ripple.PornModel public constructor PornModel(name: String, country: String = …) […]