Описание тега generics

Обобщения - это форма параметрического полиморфизма, встречающаяся в ряде языков, включая языки.NET, Java, Swift и Rust.
9 ответов

Проверка общего типа

Есть ли способ принудительного применения / ограничения типов, передаваемых примитивам? (bool, int, string и т. д.) Теперь я знаю, что вы можете ограничить универсальный параметр типа реализацией типа или интерфейса с помощью предложения where. Тем …
12 авг '08 в 15:07
8 ответов

Получить универсальный перечислитель из массива

В C# как получить общий перечислитель из данного массива? В приведенном ниже коде MyArray это массив MyType объекты. Я хотел бы получить MyIEnumerator показанным способом, но кажется, что я получаю пустой перечислитель (хотя я подтвердил, что MyArra…
13 авг '09 в 15:21
2 ответа

Generics: В чем разница между?, Object и необработанным типом одного экземпляра?

Я знаю разницу между Collection<?>, Collection<Object> а также Collection, Первый принимает только любой тип, второй должен разрешать все объекты, а третий не проверяется. Но для одного экземпляра (не коллекции), например ScheduledFuture…
30 сен '14 в 19:54
2 ответа

Тип параметра `T` может не жить достаточно долго

Я пытаюсь написать небольшую программу на Rust, но не могу заставить ее работать. Я воспроизвел ошибку в меньшем сценарии: fn main() { let name = String::from("World"); let test = simple(name); println!("Hello {}!", test()) } fn simple<T>(a: T…
19 апр '18 в 10:33
1 ответ

Приведение к IEnumerable<T>, где T - тип времени выполнения

Это странная проблема, с которой я столкнулся, включая рефлексию: Я создаю MyGenericType&lt;T&gt; во время выполнения, где T это тип времени выполнения: object genType = Activator.CreateInstance(typeof(MyGenericType&lt;&gt;).MakeGenericType(runtimeT…
22 фев '18 в 09:38
4 ответа

Ширина байта типа значения

Я хотел бы передать тип значения в функцию и установить для него повторяющуюся битовую комбинацию (FF, AA и т. Д.) По всей ширине переменной. Прямо сейчас я передаю значение с void foo(T val), где T: struct поэтому я могу использовать любой тип знач…
18 фев '09 в 14:20
6 ответов

Java объект для int: лучший способ?

У меня есть TreeSet, который будет полон целых чисел. Короче говоря, я пытаюсь начать цикл после последнего (наибольшего) значения, сохраненного в списке. Что я делаю сейчас, чтобы получить начальную переменную: Object lastObj = primes.last(); Integ…
20 май '09 в 20:47
2 ответа

Какой алгоритм выполняет определение типа T в статических методах только с <? супер T> <? расширяет T> args?

Collections класс имеет статический метод copy: public static &lt;T&gt; void ...copy(List&lt;? super T&gt; dest, List&lt;? extends T&gt; src) { //... ListIterator&lt;? super T&gt; di=dest.listIterator(); ListIterator&lt;? extends T&gt; si=src.listIt…
21 сен '15 в 22:00
1 ответ

Создание экземпляра универсального типа Java

Таким образом, у меня есть эта проблема, что я хочу иметь фабрику / менеджер класса UserManager, который управляет пользователями. И пользователи имеют как UserType1, так и UserType2. в настоящее время у меня есть это для UserManager. public abstrac…
12 июл '18 в 12:27
1 ответ

Проблемы с "где" в родовом наследовании

В следующем коде проблема на линии entities = doSpecialStuff(entities); потому что я "скучаю" по чему-то, где часть от моего doSpecialStuff() Methode Error The type 'T' cannot be used as type parameter 'T' in the generic type or method 'myWorkClass&…
03 май '13 в 07:59
2 ответа

Почему дженерики полностью отключены, когда вы игнорируете тип параметра?

Как продолжение этого вопроса, сначала фон Дан класс с этим объявлением: public class SomeClass&lt;T&gt; И подкласс, который не использует универсальный параметр: public class SomeSubClass extends SomeClass Метод в SomeClass объявлен следующим образ…
24 июн '09 в 19:43
1 ответ

C# - Принимая универсальный аргумент, используйте отражение, чтобы изменить свойства и вернуть универсальный аргумент

Я пытаюсь взять универсальный аргумент, манипулировать его свойствами через Reflection, а затем вернуть универсальный тип с измененными свойствами. public IEnumerable&lt;T&gt; GenerateTest() { var type = typeof(T); foreach (var field in type.GetProp…
17 фев '12 в 07:11
1 ответ

Введите аргументы в объявлениях подкласса

В настоящее время я изучаю дженерики и с трудом понимаю некоторые их аспекты. Я чувствую, что что-то упустил, поэтому вопрос может показаться глупым. Я понимаю, что есть: Заполнители, известные как "формальные параметры типа". Фактические "аргументы…
01 апр '16 в 13:37
3 ответа

Возврат универсального типа в WebService

Я зеленая рука в веб-сервисе. Я написал обобщенный класс в качестве держателя значения следующим образом: public class SearchResult&lt;T&gt; { private List&lt;T&gt; resultSet; } Затем я пишу метод веб-службы: public SearchResult&lt;Book&gt; getSearc…
10 дек '09 в 03:40
1 ответ

Сортировка универсального ArrayList из ArrayLists

У меня есть список точек. Я представлял это как ArrayList из ArrayLists. Я пытаюсь использовать дженерики, чтобы в списке можно было хранить целые числа, числа с плавающей запятой и т. Д. И обрабатывать их одинаково. Так что я: ArrayList&lt;ArrayLis…
07 ноя '12 в 02:43
1 ответ

Обертка ObservableCollection для приведения к базовому типу

У меня есть класс под названием Client, который является подклассом Configurable, у меня есть ObservableCollection&lt;Client&gt; который мне нужно рассматривать как ObservableCollection&lt;Configurable&gt;, Это позволит мне привязать данные к списку…
08 дек '09 в 18:08
1 ответ

C# Generics: Могу ли я объединить перегруженные методы в один с различными типами данных возврата / ввода?

У меня есть 4 статических вспомогательных метода, которые я хочу объединить в один, если это возможно. Каждый метод идентичен за исключением типа данных входного параметра и установки значения в типах ReturnDto и ReturnDto. Я довольно новичок в Gene…
6 ответов

В чем практическая разница между "ArrayList<A>" и "ArrayList<? Extends A>"?

Я посмотрел на вопросы q1, q2, q3, но они не совсем соответствуют моему вопросу. Обратите внимание, что ArrayList&lt;A&gt; and ArrayList&lt;? extends A&gt; должны использоваться для объявления переменной или параметра (не для создания нового универс…
14 апр '12 в 10:00
2 ответа

TypeScript - может ли общее ограничение предоставлять "разрешенные" типы?

Учитывая следующий код... type Indexable&lt;TKey, TValue&gt; = { [index: TKey]: TValue } Это приводит к следующей ошибке: Тип параметра подписи индекса должен быть "строка" или "число". Есть ли способ ограничить TKey быть "строкой" или "числом"?
23 окт '17 в 09:01
2 ответа

Scala - Как мне сделать метод "assertThrows"?

Я начал изучать Scala вчера, так что я довольно новичок в этом. Одна вещь, которую я люблю делать при изучении нового языка, это попытаться создать библиотеку микро-TDD. Это то, что я получил так далеко: def assert(condition: Boolean, message: Strin…
23 окт '11 в 12:18