Kotlin / Parse:com.parse.ParseObject无法转换为

时间:2019-06-10 20:38:09

标签: kotlin parse-platform parse-sdk-android

我正在尝试执行解析请求,但出现此错误:

  

com.parse.ParseObject无法转换为   com.mysapp.mys.common.model.Lesson

,但在返回请求后不会进入预订内部。 服务器的答案很好,因为我具有实时日志。

当我收到答案以及隐式使用lambda进行转换时,我相信我有问题。但是我不知道如何以其他方式实现它。

    ---
    title: \vspace{1in}"Title"
    header-includes:
    - \usepackage{fancyhdr}
    - \usepackage{titling}
    - \pretitle{\begin{center}\LARGE\includegraphics[width=2cm, height=3cm]{logo.png}\\[\bigskipamount]}
    - \posttitle{\end{center}}
    - \fancyfoot[C]{Insert Department Name Here}
    - \fancypagestyle{plain}{\pagestyle{fancy}}
    author:
    - \vspace{4in}
    - \emph{Author}
    - \emph{optional Author 2 or contact information}
    date: \vspace{1in}\emph{Date}
    geometry: left=.5in,right=.5in,top=1in,bottom=1in
    mainfont: Times New Roman
    output: 
      pdf_document: 
        highlight: tango
        toc: true 
        toc_depth: 4
        number_sections: true
        fig_caption: true
        df_print: kable
    fontsize: 11pt
    ---

我如何看待它:

fun getLessons(coach: Boolean, lessonType: LessonType?, date: Date?, position: LatLng, distance: Double): Single<List<Lesson>> {
        val params = hashMapOf<String, Any?>()
        if (lessonType == null){
            params["lessonType"] = ""
        }
        else{

        }
        params["lessonType"] = 12

        params["date"] = date
        params["geoPoint"] = ParseGeoPoint(44.557514, -0.86099)
        params["within"] = 4935.772
        Log.e("params : ", "lessonType: " + params.get("lessonType") + "| date : " + params.get("date").toString()
                + " | geoPoint: " + params.get("geoPoint") + " | within: "+ params.get("within"))
        return ParseObservable.callFunction<List<Lesson>>("getSessions", params).singleOrError()
    }

我不知道解析的工作方式,所以这就是我在

上进行复制的原因

请求项目中已经存在的人:

disposables.add(repository.getLessons(false, lesson, dateSelected, position, distance.toDouble())
                .observeOn(Schedulers.io())
                .subscribe({ lessons ->
                    Log.e("LESSONS", lessons.toString())
                    removeCanceledLessonsAndEmit(lessons)
                }, Throwable::printStackTrace)
        )

如何治疗:

fun getAverageRating(coachId: String): Single<HashMap<String, Int>> {
        val params = hashMapOf<String, String>()
        params["coachId"] = coachId
        return ParseObservable.callFunction<HashMap<String, Int>>("getAverageRating", params).singleOrError()
    }

如果您需要任何详细信息,请随时问我。

1 个答案:

答案 0 :(得分:1)

以下方法.level { width: 100%; } 返回一个getSessions而不是返回一个ParseObject类型的对象。尝试检查类型并从中返回合适的模型。

Lesson返回类型更改为此

getLessons

并像这样检查返回类型。

   ParseObservable.callFunction<List<Any>>("getSessions", params).singleOrError()

要在disposables.add(repository.getLessons(false, lesson, dateSelected, position, distance.toDouble()) .observeOn(Schedulers.io()) .subscribe({ lessons -> Log.e("LESSONS", lessons.toString()) //removeCanceledLessonsAndEmit(lessons) }, Throwable::printStackTrace) ) POJO中上课,您可以执行以下任一操作

  1. com.mysapp.mys.common.model.Lesson See this answer for details

    注释Lessons
  2. 将对象解析为JSON并使用gson转换为Lesson POJO

最后,不要忘了对此行做必要的更改 ParseObservable.callFunction>(“ getSessions”,params).singleOrError()