Kotlin lateinit记者java

你好,当我使用Kotlin来编程Android我已经看到在代码中的lateinit 。 java中的等价物是什么?我怎么把这个代码从Kotlin改成Java? public class MyTest { lateinit var subject: TestSubject }

如何在Intellij中导入目录/完整软件包以进行测试

我正在开发一个有两个分开的目录的项目(比如我们称为cordApp的两个独立的应用程序),在第一个cordapp中我们有“a,b,c”类,第二个是“d,e,f “class。 背后的想法是,第二个cordapp必须比第一个轻得多,因为它必须在网络上旅行,所以第一个的“重量”大于第二个。 我们把测试文件夹放在第一个(更重),但是我也需要测试“打火机”的东西,我怎样才能导入第一个第二个? 现在我的解决方案是在第二个文件夹中创建测试文件夹,但这不是很好,因为它会使文件更重。 任何想法如何导入另一个完整的目录/完整的应用程序? 这是该项目的一张照片,“cordapp-contract-states”是轻的,必须在“cordapp”

Kotlin中的有什么不同?

下面的测试课,通过。 class SimpleClassTest { private inline fun anyObject(): T { return Mockito.anyObject() } lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = SimpleClass(injectedObject) simpleObject.simpleFunction() verify(injectedObject).settingDependentObject(anyObject()) } } 但如果我们改变 private inline fun anyObject(): T { return Mockito.anyObject() } 至 private inline fun anyObject(): T […]

Json到Kotlin数据类

有没有一种方法和/或库自动创建从Json Kotlin数据类,就像它在Scala Json.Spray中工作? 像这样的东西: data class User(id: Int, name: String) class DataClassFactory(val json: String) { fun getUser(): User { //some reflection return User(10, “Kirill”) } } fun main(args: Array): Unit { val json = “{id: 10, name: Kirill}” val usr = DataClassFactory(json).getUser() println(usr) }

FIRESTORE持久性数据

谈论火灾持久性数据,让我们假设用户在第一次启动应用程序时没有任何连接。 我添加一些数据到Firestore数据库(如userID ..),我可以用get()方法取回它。 现在用户关闭应用程序。 下一次,他将打开应用程序(仍然没有连接),他将能够检索以前存储的数据,就像它被存储在sharedprefs的方式? 我不能清楚地弄清楚如何find一个合适的方法来建立一个永久数据的初始阶段。 我有几个片段。 每次启动其中一个时,我使用“onResume”方法从数据中填充我的组件(先前存储在sharedpref中)。 当我设置Firestore getData时,需要时间来检索。 因此,如果用户从当前片段更改为另一个,那么当连接为ON时,在数据库结果完成时,组件有空或无法访问的错误。 实施这种“onResume”数据再填充的最佳方式是什么? 更新: 以下是一些代码: MainAvtivity .kt FirebaseFirestore.getInstance().firestoreSettings.isPersistenceEnabled sightingsDatabase = FirebaseFirestore.getInstance() docname=FireStoreSetup().setupFB(sightingsDatabase!!,this) 一个kotlin对象类来填充我的文档: data class Sighting(var userID: String, var sig_wit_situation_type: Int, var sig_env_background_type: Int, var sig_ground_type: Int, var sig_YYYY: String, var sig_MM: String, var sig_DD: String, var sig_time_start: String, var sig_date_time: String, var sig_duration_hms: String, var […]

在kotlin中正常类和数据类之间有什么区别?

我试图在任务6(DataClass)解决Kotlin Koan 。 当我在代码中使用正常的类时,测试用例变成失败。 这是我的数据类的代码: data class Person(val name: String, val age: Int) fun task6(): List { return listOf(Person(“Alice”, 29), Person(“Bob”, 31)) } 这是数据类的结果: [Person(name=Alice, age=29), Person(name=Bob, age=31)] 这是我的普通类的代码: class Person(val name: String, val age: Int) fun task6(): List { return listOf(Person(“Alice”, 29), Person(“Bob”, 31)) } 这是普通class级的成绩: [i_introduction._6_Data_Classes.Person@4f47d241, i_introduction._6_Data_Classes.Person@4c3e4790] 这意味着在kotlin中正常的类和数据类之间是有区别的。 那是什么? 更新 : 感谢@Mallow,你是对的。 那工作: […]

我可以使用lambda的名称作为“括号外”传递的参数吗?

我可以在括号外写一个lambdaexpression式,但是我不能把它放在名字旁边。 我尝试了很多方法: val plus3: (Int,Int,Int)->Int = {a,b,c->a+b+c} println(apply3(1,2,3){a,b,c->a+b+c}) // OK println(apply3(1,2,3){plus3}) // Type mismatch. Required: Int, Found: (Int,Int,Int)->Int println(apply3(1,2,3){(plus3)}) // Type mismatch. Required: Int, Found: (Int,Int,Int)->Int println(apply3(1,2,3)plus3) // unresolved reference println(apply3(1,2,3){plus3()}) // value captured in a closure println(apply3(1,2,3){(plus3)()}) // value captured in a closure 在那里放置一个名字的语法是什么(在括号之外)? 我不知道为什么,但在文档中没有关于主题的文字。 它说,我们可以把lambda放在那里,但不是关于表示lambda的variables或常量。

Kotlin:对象与同伴对象之间的区别

kotlin中的一个对象和同伴对象之间有什么区别? 例: class MyClass { object Holder { //something } companion object { //something } } 如果包含的参数/方法与它的类紧密相关,我已经阅读过,应该使用伴随对象。 但是为什么还有在class上宣布一个正常的对象的可能性呢? 因为它的行为完全像伴侣,但它必须有一个名字。 在它的“静态”(我来自Java方面)生命周期中可能有不同吗?

Kotlin覆盖Java setter

我用这个方法实现一个java接口(Command): void setInputStream(InputStream in); 我想用Kotlin制定者来覆盖这个: class ProxyCommand : Command { lateinit var _inputStream: ChannelPipedInputStream var inputStream: InputStream get() = this._inputStream set(value) { // This should override it. this._inputStream = (value as ChannelPipedInputStream) } } 但是我得到这个错误在set(value) : Accidental override: The following declarations have the same JVM signature (setInputStream(Ljava/io/InputStream;)V): public final fun (value: InputStream): Unit defined in […]

Google的Duo应用程序支持哪些Android或Android应用程序?

我们可以通过意向通过Google Duo开始新的video通话吗? 我们可以启动到应用程序内的任何特定的屏幕? 我们目前支持从我们的应用中发起环聊,我们也想添加Duo支持。