JavaGroovy:从静态扩展模块的方法获取类的类型
我需要为一个特定的类编写一个带有静态方法的extension module,这些方法将被他的孩子们调用。举例来说,我有以下定义:
课程
abstract class Animal {
}
class Bird extends Animal {
}
class Dog extends Animal {
}
扩展模块
class AnimalStaticExtensions {
static doSomethingBasedOnType(Animal selfType) {
if(selfType instanceof Bird) {
println("Fly")
} else if(selfType instanceof Dog) {
println("Bark")
}
}
}
主代码
Bird.doSomethingBasedOnType() // I need to get the Bird class here
Dog.doSomethingBasedOnType() // I need to get the Dog class here
运行主代码时,会调用方法doSomethingBasedOnType
,但不起作用,因为静态扩展方法的参数selfType
未使用,且其值始终为null
有什么方法可以从静态扩展模块获取类类型
共 (0) 个答案