Я нашел проблему. Это было связано с конфигурацией EmbeddedKafka
.
Перед началом тестирования с настройкой по умолчанию появился оператор beforeAll
, начиная с EmbeddedKafka. EmbeddedKafka.start
требует обновленных настроек брокера, передавая их для публикации после запуска EmbeddedKafka
.
List<T>
средства List<WhateverTypeYouWantItToBeAListOf>
. Так, например:
, Если у меня есть Класс Сотрудника, и я хотел набор Сотрудников, я мог сказать:
List<Employee> employeeList = new List<Employee>();
я мог тогда добавить Employee
Объекты к тому списку и иметь его быть Безопасным с точки зрения типов и расшириться на однако много объектов сотрудника, я вставил его.
Как так:
Employee emp1 = new Employee();
Employee emp2 = new Employee();
employeeList.Add(emp1);
employeeList.Add(emp2);
employeeList
теперь содержит emp1
и emp2
как объекты.
существует несколько фасетов к универсальным наборам, самое важное существо, которое они обеспечивают объектному независимому способу наличия... хорошо... набор объектов. Они безопасны с точки зрения типов; что означает, что любой набор будет состоять из одного типа объекта. Вы не будете иметь Animal
экземпляр в List<Employee>
(если, конечно, Сотрудник не будет базовым классом, который Animal
наследовался. В той точке, однако, у Вас есть большие проблемы.
Программирование с Дженериками является своей собственной темой, достойной (по крайней мере) одной главы в книге. На очень высоком уровне, программирующем с дженериками, обеспечивает другой способ снова использовать код - независимый от любой иерархии классов или деталей реализации определенного класса.
[еще 1119] информация здесь .
Вам необходимо заменить T
другим типом, таким как int
, string
или классом вашего творения:
List<int> values = new List<int>();
values.Add(1);
values.Add(2);
int secondNumber = values[1]; // Yay! No casting or boxing required!
Например, если бы Вы хотели универсальный список целых чисел (int
), то Вы записали бы:
List<int> list = new List<int>();
T
параметр типа, который в Вашем коде должен быть фактическим типом.
То, что входит в "универсальный список", универсальный, является фактом, что можно использовать тот же класс для создания списка яблок и списка картофеля. Конечно, как только Вы создаете список с new
оператор, необходимо решить то, что возражает, что Вы хотите, чтобы он сохранил и передал Ваше решение путем помещения Имени типа объектов, которые Вы храните в <>
.
следующая строка на самом деле говорит компилятор:
List<Employee> employeeList = new List<Employee>();
"Эй, мне нужен список, который может обработать объекты типа Employee
; и назван employeeList
!"
объект списка Вы добираетесь, тот путь больше не универсален. Это только примет и эхо-сигналы типа Employee
. Но поведение списка определяется "универсальным" способом, который не заботится, о каких объектах оно на самом деле работает с. Это просто называет их' T
' внутренне, потому что для всего, что список, как предполагается, делает, это - тип содержания, действительно не имеет значения.
Рассмотрите T
как имя переменной. Необходимо определить его значение, т.е. сделать универсальный класс 'конкретным'. Так, можно создать List<string>
, List<int>
, или List
из чего-либо еще, что Вы хотите.
Вы объявляете список объектов Foo следующим образом:
List<Foo> fooList;
В имени типа указывается заполнитель для «реального» типа объекта, который вы помещаете в общий список во время создания экземпляра. она.
Когда Вы делаете List<Object>
, удостоверьтесь, что Ваш Класс объекта общедоступен. В установках VS по умолчанию классы выходят из поля как 'внутреннего' - значение, что Вы не можете составить список их, потому что они менее доступны, чем общедоступный Список, который Вы объявляете.
Это получило меня гм... вчера. Глупые значения по умолчанию.
Вы пытаетесь использовать класс List или пытаетесь создать свой собственный? Как выглядит ваш код на данный момент?