Kotlin技术问题:计算后调用父类方法与自定义异常消息优化
Kotlin相关问题解答
1. 执行计算逻辑后调用父类方法
在Kotlin里,要实现先执行自定义计算/逻辑再调用父类方法,其实很简单:在子类重写的方法里,先写你的业务逻辑代码,之后通过super.方法名()调用父类对应的方法即可。
举个实际场景的例子,比如重写普通类的方法:
open class ParentClass { open fun doSomething() { println("父类的doSomething方法") } } class ChildClass : ParentClass() { override fun doSomething() { // 先执行自己的计算逻辑 val result = 5 + 3 println("计算结果:$result") // 再调用父类的方法 super.doSomething() } }
不管是重写普通类方法、Android组件的生命周期方法,还是接口的默认方法,这个逻辑都通用——先处理自己的逻辑,再通过super触发父类的实现。
2. 自定义异常嵌入错误消息逻辑
你可以通过给自定义异常类添加带特定参数的构造函数,把消息生成逻辑封装到类内部,这样就不用每次手动拼接消息了。
修改后的异常类代码如下:
class IsEvenError(n: Int) : Exception("$n is even")
这里我们定义了一个接收Int类型参数n的构造函数,在构造异常对象时,自动用传入的n拼接成错误消息,再传递给父类Exception的构造函数。
使用时直接传入数字即可,异常消息会自动生成:
val n = 10 if (n % 2 == 0) { throw IsEvenError(n) // 抛出的异常消息为"10 is even" }
如果需要支持手动传入自定义消息的场景,还可以重载构造函数,兼顾灵活性:
class IsEvenError : Exception { // 自动生成消息的构造函数 constructor(n: Int) : super("$n is even") // 手动传消息的构造函数 constructor(message: String) : super(message) }
这样既可以用throw IsEvenError(10)自动生成标准消息,也能通过throw IsEvenError("自定义错误提示")满足特殊场景需求。
内容的提问来源于stack exchange,提问作者nz_21
相关产品推荐
相关产品推荐

