У меня есть общая библиотека jenkins.У него есть некоторый CustomClass.groovy с переопределенным методом toString ():
package com.jenkins
class CustomClass {
CustomClass(){
}
@Override
String toString() {
return "custom_class"
}
}
И у меня есть Jenkinsfile:
@Library("sharedlib@to-string")
import com.jenkins.CustomClass
println("1")
println(new CustomClass())
println("2")
println("prefix: " + new CustomClass())
println("3")
println("prefix: " + new CustomClass().toString())
Он производит следующий вывод:
[Pipeline] echo
1
[Pipeline] echo
2
[Pipeline] echo
custom_class
[Pipeline] echo
3
[Pipeline] echo
prefix: custom_class
[Pipeline] End of Pipeline
Finished: SUCCESS
У меня есть некоторая путаница с этим выводом:
- Почему первый пример ничего не печатал?
- Почему первый пример не печатал префикс?Почему только экземпляр?
- Почему второй и третий примеры различны?Почему здесь я вижу префикс, но не вижу его во втором примере.Почему в первом примере ничего не напечатано, а в третьем все в порядке, как и ожидалось.В конце концов, метод println () неявно использует toString () во втором примере.