获取类的类名

时间:2018-02-19 23:48:54

标签: jenkins groovy jenkins-pipeline

Groovy初学者,来自Java / Kotlin,我如何获得班级(匿名)实现的班级名称?

尝试失败:

abstract class Foo {
    String name() { this.class.simpleName }
}

abstract class Foo {
    String name() { return this.class.simpleName }
}

abstract class Foo {
    String name() { return getClass().getSimpleName() }
}

abstract class Foo {
    String name() { this.metaClass.classNode.nameWithoutPackage }
}

所以显然我似乎给了一些类实例一个默认名称。我想"好吧,如果班级名称不起作用,让我们尝试个人命名"有了这个:

abstract class Foo {
    private final AtomicInteger counter = new AtomicInteger(0)
    String name() { "number " + this.counter.incrementAndGet() }
}

但这不起作用,因为counter is not a property of groovy.lang.Binding

这是我尝试写的Jenkins管道的上下文......为什么这么难?

1 个答案:

答案 0 :(得分:1)

你可能想要这个......

abstract class Foo {
    String name() { this.class.name }
}