Мне интересно, можно ли создать пользовательскую аннотацию, которая может иметь переменное количество параметров. Возможно, псевдо-пример был бы лучшим. Вот где я начинаю:Пользовательские метаданные с неизвестной длиной параметра?
class TestMetadata {
final int prop;
final String prop2;
const TestMetadata({int prop, String prop2}) : this.prop = prop, this.prop2 = prop2;
}
const TestMetadata testMetadata = const TestMetadata();
В настоящее время, это позволит вам комментировать что-нибудь так:
@testMetadata
void myFunction() {
}
@TestMetadata(prop:1, prop2:"Hello")
void myOtherFunction() {
}
Я хотел бы иметь возможность кормить в более параметров без явного определения их , Я попытался добавить карту (Это все, что я мог думать) к классу TestMetadata, например, так:
class TestMetadata {
final int prop;
final String prop2;
final Map theRest;
const TestMetadata({int prop, String prop2, Map theRest}) : this.prop = prop, this.prop2 = prop2, this.theRest = theRest;
}
но при попытке получить доступ к карте от аннотации, как так:
@TestMetadata(prop:1, prop2:"Hello", theRest:{param:"World"})
void myOtherFunction() {
}
Я получаю сообщение об ошибке:
«Аргументы постоянного творения должны быть постоянными выражениями». Достаточно справедливо, это имеет смысл. Есть ли у кого-нибудь идеи?
Человек, который быстро, спасибо! – mrand01