Tag: 对象

以共享首选项存储和检索类对象

在Android中,我们可以将共享首选项中的类的对象存储起来,然后再检索对象? 如果有可能怎么做呢? 如果不可能的话,还有其他的可能性吗? 我知道序列化是一种选择,但我正在寻找使用共享偏好的可能性。

返回内部类的调用对象函数

我正在使用Kotlin进行测试,并且正在编写一个小型库,以供测试App项目导入和使用。 在图书馆项目中,我将我的类标记为internal类,因为我不希望它们对于App项目是可见的,但是我希望为该类库提供一个入口点,为此我使用如图所示的Kotlin object下面 LIBRARY object Library { fun getComponent() = AwesomeComponent() } internal class AwesomeComponent() { // some implementation } TEST APP class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val component = Library.getComponent() } } 问题是这不能编译,因为Library object的函数返回一个internaltypes,因此也需要标记为internal,但是这样做会隐藏TestApp的函数。 另一个选择是根本没有internal修饰符,所以TestApp可以看到Library方法,但是它也可以看到Library项目中的类 在这里我忽略了一个简单的解决方案,还是需要重新规划图书馆项目的包装和结构? (不知道如何做到这一点)

对象的快速inheritance和接口的含义

我在Kotlin中find:Object文档的一个例子: open class A(x: Int) { public open val y: Int = x } interface B {…} val ab: A = object : A(1), B { override val y = 15 } 所以我用更有意义的名字实现了这个例子,我不知道在逗号分隔的超types列表之间的接口的原因是什么? interface Toy { fun play () { println(“Play, play….”) } } open class Ball(public open val color: String = “red”) {} val […]

Kotlin覆盖抽象的val行为,对象vs类

我刚开始使用并开始搞抽象类,重写val和singelton。 但是,我刚刚遇到一个非常奇怪的行为。 我的目标是要有一个抽象类,然后创建几个扩展抽象类的singelton。 因为我想要求某些variables,我创建了抽象的val,然后可以在子类中重写(而不是通过构造函数传递它们)。 所以我有四个class: 主要活动: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val instance = Instance() Log.d(“MainActivity”, “instance randObject: ${instance.randObject}”) Log.d(“MainActivity”, “instance randObject: ${instance.randObject.myProp}”) Log.d(“MainActivity”, “instance randObject: ${instance.randObject.myProp2}”) Log.d(“MainActivity”, “singleton randObject: ${Object.randObject}”) Log.d(“MainActivity”, “singleton randObject: ${Object.randObject.myProp}”) Log.d(“MainActivity”, “singleton randObject: ${Object.randObject.myProp2}”) } } 例如: class Instance: AClass(){ override val testString: […]

Java JNI如何与Kotlin / Native交互来查找对象值?

从JetBrains网站: Kotlin / Native是一种将Kotlin编译为没有任何VM的本机二进制文件的技术。 但是Kotlin如何与JNI进行交互,据我所知,如果一个使用JNI的C / C ++程序想要访问一个Java字段,那么它必须使用GetFieldID函数,但是C程序需要来自描述该对象及其值的JVM的信息。 kotlin / Native如何解决字段的值,如果Kotlin使程序不依赖于VM,它如何获得Java字段的值?