tôi có một đối tượng với một số lĩnh vực,groovy: Có một tên trường, cần phải thiết lập giá trị và không muốn sử dụng công tắc
class TestObj {
def field1
def field2
}
Tôi có một cặp giá trị v1 = "field1" và v2 = "value2" Tôi muốn đặt v2 vào trường thích hợp dựa trên tên của v1, nhưng tôi không muốn làm điều đó bằng công tắc hoặc nếu câu lệnh, tôi tiếp tục nghĩ rằng phải có nhiều "rãnh nhỏ" "cách để đạt được kết quả khác hơn là làm điều gì đó như thế này:
setValues(def fieldName, def fieldVal) {
if (fieldName.equals("field1")) {
field1 = fieldVal
}
if (fieldName.equals("field2")) {
field2 = fieldVal
}
}
Tôi đã thử làm điều này:
setValues(def fieldName, def fieldVal) {
this['${fieldName}'] = fieldVal
}
Tuy nhiên thất bại, nói không có tài sản $ {} fieldName
Cảm ơn.
Ok, công trình này: đây [ "$ {fieldName}"] = fieldVal –
'' là chuỗi bình thường và sẽ không làm việc với macro, '$ là 'sẽ đơn giản là' $ là 'trong khi "$ là" sẽ giải quyết cho giá trị của biến đó. – xlson