Есть ли способ изменить, какой будет «строка» .operator условно

#flutter #dart #provider

#flutter #dart #поставщик

Вопрос:

Это будет звучать очень странно, но это сделает код для этого приложения очень компактным.

Есть ли способ вызвать .operator условно. Вот пример

допустим, у меня есть класс с тремя значениями, которые я могу выполнить . on.

 class A {
int intOne;
int intTwo;
int intThree;
}
  

чтобы получить интонацию в классе A, вы можете сделать A.правильно интонируйте….

но что, если вы хотели строку справа от . чтобы условно быть там.

A.»conditionalvariable»

итак, если пользователь нажимает кнопку, скажем, button A, то условной переменной будет A.Интонировать. и если пользователь нажмет кнопку b, тогда значение «conditionalvariable» будет равно INTWO, и, следовательно, вы будете получать данные.

пожалуйста, предположите, что я не глуп, и мне нужна именно эта вещь для конкретного варианта использования. Если вы опубликуете ответ, который не является этим точным решением, он не будет принят.

пример:

 var a;
switch (name) {
case "intOne":
  a = A.intOne;
  break;
... 
} 
  

// это неприемлемый ответ
Я понимаю, что это был бы «ответ» на этот вопрос, но на самом деле мне не нужно точное указание, потому что я использую streams.

вот тот вариант использования, о котором я говорил. Я мог бы целый день объяснять, зачем мне это нужно таким образом, но в любом случае это либо существует, либо нет, поэтому простое «нет, этого не существует» является приемлемым ответом.

 return StreamProvider.value(
      value: classDataNotif.homework,
)
  

в зависимости от того, что нажато перед этим виджетом, «домашнее задание» нужно будет изменить на «заметки» или «тесты».

Вы не можете выполнить переключение выше этого, потому что это вызовет поток раньше и приведет к сбою виджета. переключение внутри виджета и копирование кода приведет к потере цели. чтобы сделать код максимально компактным и простым в написании, мне нужна строка справа от . оператор для изменения.

заранее спасибо 🙂

Комментарии:

1. Я понимаю, что вы пытаетесь сделать. Теперь я не уверен, возможно ли это или нет, но это напоминает мне много отражений Java, где у вас есть операторы для доступа к полям, поэтому, возможно, взгляните на это и посмотрите, есть ли «Отражения» в dart! Надеюсь, это поможет

2. Это было бы возможно только с отражением, которое возможно только с помощью dart. Но, похоже, вы используете flutter, поэтому это невозможно сделать.