Parceler / Kotlin:如何使用非数据类?

我想知道如何与Kotlin一起使用Parceler。 这个代码 var x = Intent(); x.putExtra(“dog”, Parcels.wrap(Dog(“wow”))) 抛出一个exception parceler.ParcelerRuntimeException:无法为com.loser.stack2.Dog查找生成的Parcelable类,请validation您的类是否正确配置,并且Parcelable类com.loser.stack2.Dog $$ Parcelable是由Parceler生成的。 类是这样的。 @org.parceler.Parcel open class Dog { @ParcelProperty(“f1”) var f1:String? = null; @ParcelProperty(“f2”) var f2:String? = null; @ParcelConstructor constructor();//I do not use this. Only for Parceler. constructor(json:String) { f1=json; f2=json; } } @org.parceler.Parcel class Doge:Dog { @ParcelProperty(“f3”) var f3:String? = null; @ParcelProperty(“f4”) var f4:String? […]

kotlin mockk没有回答发现错误

嗨,我试图嘲笑从单一的观察得到的回应,从改装使用我的演示者类调用的委托人返回,我得到以下错误: io.mockk.MockKException:没有find答案:LoginPresenter(#1).login(LoginRequest(email=hello@gmail.com,password = password123)) 这是我的测试代码 @Test fun testKotlinMock(){ val presenter : LoginPresenter = mockk() val delegator = mockk() val viewCallback = mockk() val cookieStore = mockk() val loginRequest = LoginRequest(“hello@gmail.com”, “password123”) val customerResponse = CustomerResponse(“jon”, “richy”) every { delegator.login(loginRequest) } returns Single.just(Response.success(any())) every { delegator.getCustomer() } returns Single.just(customerResponse) every { presenter.loginViewCallBack } returns viewCallback every […]

Kotlin中使用数据typesDouble的范围

fun calcInterest(amount: Double, interest: Double): Double { return(amount *(interest/100.0)) } fun main(args: Array) { for (i in 1.0..2.0 step .5) { println(“&10,000 at 5% interest is = ${calcInterest(10000.0,i)}”) } } 我得到的错误说For循环范围必须有一个“Iterator()”方法。 它强调了我的双打(我在1.0..2.0) 我怎样才能在一个范围内使用双打? 重新加载范围( https://blog.jetbrains.com/kotlin/2013/02/ranges-reloaded/ )上的网站显示,使用数据typesDouble是好的。 我不知道我的是怎么了 我需要使用双打,因为我的利率是使用小数。 完全新编程,希望有人可以简单地解释。 谢谢! 编辑:添加步骤.5

Kotlin – 重写方法中的IllegalArgumentException

在Kotlin中,我重写了这两个Google Sign-In函数: override fun onConnectionFailed(result: ConnectionResult) { if (result.hasResolution()) { try { result.startResolutionForResult(this, RESOLVE_CONNECTION_REQUEST_CODE) } catch (e: IntentSender.SendIntentException) { // Unable to resolve, message user appropriately } } else { val gaa = GoogleApiAvailability.getInstance() gaa.getErrorDialog(this, result.errorCode, 0) } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { when (requestCode) { RESOLVE_CONNECTION_REQUEST_CODE -> if (resultCode […]

如何通过reflection来使用Kotlin对象

比方说,我需要通过reflection来设置由字符串给定的Kotlin对象O中的字符串给定的属性A. 如果O是一个class级,我可以做这样的事情(无视它是没有意义的): fun setValue(ownerClassName: String, fieldName: String, value : Any) { val enclosingClass = Class.forName(ownerClassName).newInstance() val enclosingClassField = enclosingClass.javaClass.getDeclaredField(fieldName) enclosingClassField.isAccessible = true enclosingClassField.set(enclosingClass, value) } 但是如果O是一个对象,我该怎么做呢?

设置一个字段的值,而不用调用set方法 – Kotlin

我一直在使用Kotlin在Android中开发一些应用程序,而现在我想要做的是在定义的类中设置一个字段值,而不用调用setter方法。 这里是我的课堂里的代码: var projectList: List? = null set(value) { saveProjects(value as ArrayList) field = value } //GO to the database and retrieve list of projects fun loadProjects(callback: Project.OnProjectsLoadedListener) { database.projectDao().getAll().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe( { success -> callback.onProjectsLoaded(success) //Here i don’t want to save the projects, because i’ve loaded them from the database this.projectList = success }, { […]

如何用原始types在kotlin中调用函数

当一个函数声明一个types参数时: fun typedFunction(value: T, option: Option) { … } 我应该如何在kotlin中调用raw un-typed typedFunction? 为什么? 在Java中我有: // This is a method in an external library. I can not change it. void typedFunction(T t, Option o) { … } // This is my code. optionsValues contains many types // such as Option, Option, and … Map<Option, ?> m […]

Kotlin中有构造函数吗?

在Java中,我们有构造函数引用的Class::new语法。 我知道,有方法可调用的引用,但如何构造函数? 对我来说,一个典型的用例就是工厂。

“没有足够的信息来推断参数T”与Kotlin和Android

我想在我的Android应用程序中使用Kotlin复制以下ListView: https : //github.com/bidrohi/KotlinListView 。 不幸的是,我得到一个错误,我无法自己解决。 这是我的代码: MainActivity.kt: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val listView = findViewById(R.id.list) as ListView listView.adapter = ListExampleAdapter(this) } private class ListExampleAdapter(context: Context) : BaseAdapter() { internal var sList = arrayOf(“Eins”, “Zwei”, “Drei”) private val mInflator: LayoutInflater init { this.mInflator = LayoutInflater.from(context) } override fun getCount(): Int { return […]

unit testing使用kotlin协同程序的翻新调用

我正在使用kotlin协程和kotlin改进协程在我正在进行的项目中执行网络请求。 但我无法弄清楚如何让我的unit testing通过逻辑。 这是我的代码: class WorklistInteractor @Inject constructor(private val worklistRepository: WorklistRepository, private val preferenceManager: PreferenceManager) : NetworkInteractor, WorklistDialogContract.Interactor { private var job = Job() override fun getWorklist(listener: OnWorklistResultListener) { job = launch(UI) { val result = async { worklistRepository.getWorklist( ip = preferenceManager.worklistIp, port = preferenceManager.worklistPort).awaitResult() }.await() when (result) { //Successful HTTP result is Result.Ok -> […]