Хотелось бы узнать, возможно ли получить имя переменной.
Например, если у меня есть метод:
def printSomething(def something){
//instead of having the literal String something, I want to be able to use the name of the variable that was passed
println('something is: ' + something)
}
Если я вызываю этот метод следующим образом:
def ordinary = 58
printSomething(ordinary)
Я хочу получить:
ordinary is 58
С другой стороны, если я вызову этот метод следующим образом:
def extraOrdinary = 67
printSomething(extraOrdinary)
Я хочу получить:
extraOrdinary is 67
Редактировать
Мне нужно имя переменной, потому что у меня есть этот фрагмент кода, который выполняется перед каждым TestSuite в Katalon Studio , в основном это дает вам гибкость передачи GlobalVariables с помощью файла katalon.features,Идея от: kazurayam / KatalonPropertiesDemo
@BeforeTestSuite
def sampleBeforeTestSuite(TestSuiteContext testSuiteContext) {
KatalonProperties props = new KatalonProperties()
// get appropriate value for GlobalVariable.hostname loaded from katalon.properties files
WebUI.comment(">>> GlobalVariable.G_Url default value: \'${GlobalVariable.G_Url}\'");
//gets the internal value of GlobalVariable.G_Url, if it's empty then use the one from katalon.features file
String preferedHostname = props.getProperty('GlobalVariable.G_Url')
if (preferedHostname != null) {
GlobalVariable.G_Url = preferedHostname;
WebUI.comment(">>> GlobalVariable.G_Url new value: \'${preferedHostname}\'");
} else {
WebUI.comment(">>> GlobalVariable.G_Url stays unchanged");
}
//doing the same for other variables is a lot of duplicate code
}
Теперь это обрабатывает только 1 значение переменной, если я делаю это, скажем, для 20 переменных, то есть много повторяющегося кода, поэтому яхотел создать вспомогательную функцию:
def setProperty(KatalonProperties props, GlobalVariable var){
WebUI.comment(">>> " + var.getName()" + default value: \'${var}\'");
//gets the internal value of var, if it's null then use the one from katalon.features file
GlobalVariable preferedVar = props.getProperty(var.getName())
if (preferedVar != null) {
var = preferedVar;
WebUI.comment(">>> " + var.getName() + " new value: \'${preferedVar}\'");
} else {
WebUI.comment(">>> " + var.getName() + " stays unchanged");
}
}
Здесь я просто поместил var.getName (), чтобы объяснить, что я ищу, это просто метод, который я предполагаю.