groovy: Иметь имя поля, необходимо установить значение и не хотите использовать переключатель

У меня есть объект с несколькими полями,

class TestObj { 
  def field1
  def field2
}

У меня есть пара значений v1 =«field1» и v2 = «value2» Я хотел бы установить v2 в соответствующее поле на основе имени v1, но я предпочел бы не делать это с переключателем или если операторы, я продолжаю думать, что должно быть много более «groover» способ достижения результата, кроме как делать что-то подобное:

setValues(def fieldName, def fieldVal) {
  if (fieldName.equals("field1")) {
    field1 = fieldVal
  }
  if (fieldName.equals("field2")) {
    field2 = fieldVal
  }
}

Я пытался сделать это:

setValues(def fieldName, def fieldVal) {
  this['${fieldName}'] = fieldVal
}

Однако, это не удается, говоря, что нет свойства $ {startName}

Спасибо.

-121--972696- Существует ли аналог метода расширения NHibernate.ToFuture () в структуре сущности? Поэтому вопрос находится в заголовке. Что могут делать пользователи NHibernate: var q1 = Source.Companies.ToFuture (); var q2 = Источник. Предметы .ТоБудущее (); var q3 = Source.Users.ToFuture (); var compoundModel = новая...

Поэтому вопрос находится в заголовке.

Что могут делать пользователи NHibernate:

var q1 = Source.Companies.ToFuture();
var q2 = Source.Items.ToFuture();
var q3 = Source.Users.ToFuture();

var compoundModel = new CompoundModel(q1, q2, q3); 
// All data obtained in single database roundtrip 
// When the first to future statement is touched

Как имитировать такое поведение в EF 4?

9
задан v00d00 4 September 2011 в 07:24
поделиться