有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案