吐槽一下,程序猿的辛酸史。
今天在开发新项目时,首次使用了Kotlin语言,对于之前只在纸上谈兵,未在项目中使用过的码农,很是一脸懵逼。但是迫于公司的要求,只能硬头皮冲吧。

在编写下面代码时:

holder?.addCallback(object :SurfaceHolder.Callback{override fun surfaceChanged(holder: SurfaceHolder?, format: Int, width: Int, height: Int) {TODO("not implemented") //To change body of created functions use File}override fun surfaceDestroyed(holder: SurfaceHolder?) {TODO("not implemented") //To change body of created functions use File }override fun surfaceCreated(holder: SurfaceHolder?) {TODO("not implemented") //To change body of created functions use File }})

项目直接闪退,在查看崩溃时,报以下错误:

Process: com.example.gaozhongkui.camerademo, PID: 28490kotlin.NotImplementedError: An operation is not implemented: not implementedat com.example.gaozhongkui.camerademo.MainActivity$onCreate$1.surfaceCreated(MainActivity.kt:44)at android.view.SurfaceView.updateSurface(SurfaceView.java:732)at android.view.SurfaceView$2.onPreDraw(SurfaceView.java:150)at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2747)at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1650)at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7579)at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)at android.view.Choreographer.doCallbacks(Choreographer.java:732)at android.view.Choreographer.doFrame(Choreographer.java:664)at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)at android.os.Handler.handleCallback(Handler.java:790)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:183)at android.app.ActivityThread.main(ActivityThread.java:7014)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:514)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888)

很是一脸懵逼,因为未写任何代码,就会导致崩溃,在经过Google才恍然大雾。我们在继承接口时,使用IDE自动帮助生成需要实现方式时,会自动添加:

 TODO("not implemented") //To change body of created functions use File | Settings | File Templates.

重点就在TODO,有这个函数,它是要求你必须实现代码块。所以只需要删除TODO(“not implemented”) 这句话就可以了。

作为一枚程序猿有一种刨根问底的精神,在查看源码时,发现以下的猫腻:

@kotlin.internal.InlineOnly
public inline fun TODO(reason: String): Nothing = throw NotImplementedError("An operation is not implemented: $reason")

原来是TODO这个函数主动抛出的问题,现在终于知道原因了。

这是官网对kotlin TODO描述地址

An operation is not implemented: not implemented被坑之路[Kotlin]相关推荐

  1. JLink 警告:The connected J-Link is defective,Proper operation cannot be guaranteed.所遇到的坑

    首先看到了这个老兄的帖子 https://blog.csdn.net/xiaogu0322/article/details/99873078 然后发现keil5.32直接闪退:再翻到这个老兄发的: h ...

  2. 无锁数据结构三:无锁数据结构的两大问题

    实现无锁数据结构最困难的两个问题是ABA问题和内存回收问题.它们之间存在着一定的关联:一般内存回收问题的解决方案,可以作为解决ABA问题的一种只需很少开销或者根本不需额外开销的方法,但也存在一些情况并 ...

  3. pubchem的官方API - PUG REST的使用教程(持续更新)

    以URL为基础的API分为4个部分 input specification--------------------------------------------------------输入 oper ...

  4. Mono Compatibility

    The easiest way to describe what Mono currently supports is: Everything in .NET 4.5 except WPF, WWF, ...

  5. YEP_fpssynchoption

    帧率调节插件 ============================================================================ Introduction === ...

  6. 【ceph】CEPH源码解析:读写流程

    相同过程 Ceph的读/写操作采用Primary-Replica模型,客户端只向Object所对应OSD set的Primary OSD发起读/写请求,这保证了数据的强一致性.当Primary OSD ...

  7. atomic原子类实现机制_JUC学习笔记--Atomic原子类

    Atomic 原子操作类包 Atomic包 主要是在多线程环境下,无锁的进行原子操作.核心操作是基于UnSafe类实现的CAS方法 CAS CAS: compareAndSwap :传入两个值:期望值 ...

  8. TP5部署服务器问题总结

    及最近部署TP5遇到了很多坑,各种环境下都会出现一些问题,下面是我记录的排坑之路 先说最简单的lnmp一键安装包,我用的是1.5稳定版 安装命令:wget http://soft.vpser.net/ ...

  9. Win11 + Ubuntu18.04 双系统踩坑日记

    Win11 + Ubuntu18.04 双系统踩坑日记 前言 准备工作 硬件配置 镜像下载 Win11镜像下载 Ubuntu镜像下载 启动盘准备 Win11启动盘 Ubuntu启动盘 Win11安装 ...

最新文章

  1. Appcan关闭主窗口
  2. 24点——判断4个数能否经过运算使得结果为24
  3. You have not accepted the license agreements of the following SDK components
  4. flask之jinji2模板介绍
  5. [精品]CSAPP Bomb Lab 解题报告(二)
  6. 相对路径和绝对路径概念
  7. Linq to Oracle 使用教程(三)数据的增、删、改
  8. Spring框架学习[IoC容器高级特性]
  9. 最全 MyBatis 核心配置文件总结,速度收藏了~
  10. 拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化
  11. python基础教程菜鸟教程pdf-菜鸟教程 python pdf/Python菜鸟教程怎么样
  12. Android仿支付宝提现
  13. vs 2015 update 3各版本下载地址
  14. 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用java实现程序解决问题。
  15. 区块链学习8:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名
  16. wifiadbtool下载_私享空间-中兴B860Av1.1免拆机仅安装APP教程 - 中国电信悦me盒子
  17. 用node.js批量处理json文件
  18. 在域控制器上(AD)搭建组织架构
  19. 基于微信教室图书馆座位预约小程序毕业设计毕设作品(2)小程序功能
  20. 高逼格UI-ASD(Android Support Design)

热门文章

  1. Java的内部类详解(成员内部类、静态内部类、局部内部类、匿名内部类)
  2. 2019上海米其林指南榜单出炉 | 附全部名单、地址、人均消费
  3. 百度新首页网友褒贬不一
  4. 《视窗控制中心 V6.0》(SIMATIC WinCC V6.0)6.0 SP3 + Hotfix2 Build: 6.1.1.2[ISO]
  5. 云盒子携手中交一公局,打造工程企业办公新模式
  6. arguments了解
  7. linux编译安装madam,madam、Linux LVM的使用
  8. 【tomcat】01-tomcat启动主要流程
  9. IFC格式BIM文件处理方案概述
  10. 016 A Principled Approach to Data Valuation for Federated Learning(评价 federated shapley value)