generics- все статьи тега ➜ страница 3
Использование протоколов в качестве типов массивов и параметров функций в swift
Я хочу создать класс, который может хранить объекты, соответствующие определенному протоколу. Объекты должны храниться в типизированном массиве. Согласно документации Swift протоколы могут использоваться в виде типов: поскольку это тип, вы можете использовать протокол во многих местах, где разрешены другие типы, в том числе: в качестве типа параметра или возвращаемого типа в функции, методе или инициализаторе тип константы, переменная или свойство как тип элементов в массиве, слов ...
Преобразование универсального списка в строку CSV-файла
У меня есть список целочисленных значений (список) и хотел бы создать строку с разделителями-запятыми значений. То есть все элементы в списке выводятся в один список с разделителями-запятыми. мои мысли... 1. передайте список методу. 2. Использовать StringBuilder, чтобы перебирать список и добавить запятых 3. Проверить последний символ и если это запятая, удалите его. о чем ты думаешь? Это лучший способ? Как бы мой код изменился, если бы я хотел обрабатывать не только целые числа (мой текущий ...
Что такое "специальный класс"?
после того, как не удалось получить что-то вроде следующего для компиляции: public class Gen<T> where T : System.Array { } ошибка ограничение не может быть системой специального класса.Массив' Я начал задаваться вопросом, что именно и "специальный класс"? люди часто, кажется, получают тот же вид ошибки, когда они указывают System.Enum В общем ограничении. Я получил те же результаты с System.Object,System.Delegate,System.MulticastDelegate и System.ValueType тоже. есть ли еще из н ...
Как передать тип класса в качестве параметра функции
у меня есть общая функция, которая вызывает веб-службу и сериализует ответ JSON обратно на объект. class func invokeService<T>(service: String, withParams params: Dictionary<String, String>, returningClass: AnyClass, completionHandler handler: ((T) -> ())) { /* Construct the URL, call the service and parse the response */ } то, что я пытаюсь сделать, это эквивалент этого кода Java public <T> T invokeService(final String serviceURLSuffix, final Map<String, ...
Почему нет дженериков в Go?
отказ от ответственности: я только играл с Go в течение одного дня, так что есть хороший шанс, что я пропустил много. кто-нибудь знает, почему нет реальной поддержки дженериков/шаблонов/whatsInAName в Go? Так что есть общий map, но это предоставлено компилятором, в то время как программист Go не может написать свою собственную реализацию. Со всеми разговорами о том, чтобы сделать Go максимально ортогональным, почему я могу использовать общий тип, но не создавать новый? особенно когда он прихо ...
Как динамически создать универсальный объект C# с помощью отражения? [дубликат]
этот вопрос уже есть ответ здесь: Передать Экземпляр Системы.Введите в качестве параметра типа для универсального класса 4 ответы В C# у меня есть следующий объект: public class Item { } public class Task<T> { } public class TaskA<T> : Task<T> { } public class TaskB<T> : Task<T> { } Я хочу динамически создавать TaskA или TaskB с помощью отражения C# (активатор.CreateIn ...
Почему я не могу использовать значение типа float в качестве параметра шаблона?
когда я пытаюсь использовать float в качестве параметра шаблона компилятор запрашивает этот код, в то время как int работает нормально. это потому, что я не могу использовать float как параметр шаблона? #include<iostream> using namespace std; template <class T, T defaultValue> class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() { return value; } }; int main() { GenericClass <in ...
Лямбда-выражение и универсальный метод
Предположим, у меня есть универсальный интерфейс: interface MyComparable<T extends Comparable<T>> { public int compare(T obj1, T obj2); } и метод sort: public static <T extends Comparable<T>> void sort(List<T> list, MyComparable<T> comp) { // sort the list } я могу вызвать этот метод и передаем лямбда-выражение в качестве аргумента: List<String> list = Arrays.asList("a", "b", "c"); sort(list, (a, b) -> a.compareTo(b)); это бу ...
Как создать универсальный массив? [дубликат]
этот вопрос уже есть ответ здесь: Как создать универсальный массив в Java? 29 ответов Я не понимаю связи между дженериками и массивами. Я могу создать ссылку на массив с универсального типа: private E[] elements; //GOOD но не удается создать объект массива с помощью generic тип: elements = new E[10]; //ERROR но это работает: elements = (E[]) new Object[10]; //GOOD ...
Как использовать универсальный протокол в качестве типа переменной
допустим, у меня есть протокол: public protocol Printable { typealias T func Print(val:T) } а вот и реализация class Printer<T> : Printable { func Print(val: T) { println(val) } } Я ожидал, что я должен быть в состоянии использовать Printable переменная для печати таких значений: let p:Printable = Printer<Int>() p.Print(67) компилятор жалуется на эту ошибку : "протокол ' Printable' может использоваться только в качестве общего ограничения, пото ...
в чем разница между 'super' и 'extends' в Java Generics [дубликат]
этот вопрос уже есть ответ здесь: разница между супер Т> и расширяет T> в Java [дубликат] 15 ответов Я пытаюсь изучить Java дженерики. Я не понимаю, когда вы будете использовать <T extends Foo> и когда вы будете использовать <T super Foo>. Что каждая из этих вещей означает о T? Допустим, у меня есть <T extends Comparable> и <T super Comparable>, что означает каждый из них? ...
Используя 'using alias = class' с универсальными типами? [дубликат]
этот вопрос уже есть ответ здесь: Использование оператора с обобщениями: использование ISet = System.Коллекции.Родовой.Исеть> 6 ответов поэтому иногда я хочу включить только один класс из пространства имен, а не целое пространство имен, как в Примере здесь я создаю псевдоним для этого класса с помощью заявление: using System; using System.Text; using Array = System.Collections.ArrayList; Я часто делаю это с дженерик ...
SortedList, SortedDictionary и словарь
Я считаю, что SortedList<TKey, TValue>SortedDictionary<TKey, TValue> и Dictionary<TKey, TValue> реализовать тот же интерфейс. когда мы должны выбрать SortedList и SortedDictionary over Dictionary? в чем разница между SortedList и SortedDictionary С точки зрения применения? ...
Что означает "T" в C#?
у меня есть фон VB, и я конвертирую в C# для своей новой работы. Я также пытаюсь стать лучше в .NET в целом. Я видел, что ключевое слово " T " часто используется в образцах сообщений людей. Что означает "T" в C#? Например: public class SomeBase<T> where T : SomeBase<T>, new() Что значит T сделать? Зачем мне его использовать? ...
Каков "правильный"способ выполнения запроса Hibernate.список() в список?
я новичок с Hibernate, и я пишу простой метод, чтобы вернуть список объектов соответствие определенному фильтру. List<Foo> казалось естественным типом возврата. что бы я ни делал, я не могу сделать компилятор счастливым, если я не использую уродливый @SuppressWarnings. import java.util.List; import org.hibernate.Query; import org.hibernate.Session; public class Foo { public Session acquireSession() { // All DB opening, connection etc. removed, // since the problem i ...
ключевое слово java generics super
я прошел через эти темы дженерики..? Супер Т ограничивающие дженерики с ключевым словом "super" тем не менее, я все еще кажусь немного потерянным с super ключевые слова: когда мы объявляем сбор так: List<? super Number> list = null; list.add(new Integer(0));//this compiles list.add(new Object());//this doesn't compile не должно ли быть наоборот - у нас есть список, который содержит некоторые объекты (неизвестного типа), которые родители Number. Так что Object должно соответствоват ...
Приведение объекта к T
я разбираю XML-файл с помощью XmlReader класс в .NET, и я подумал, что было бы разумно написать общую функцию синтаксического анализа для чтения различных атрибутов в целом. Я придумал следующую функцию: private static T ReadData<T>(XmlReader reader, string value) { reader.MoveToAttribute(value); object readData = reader.ReadContentAsObject(); return (T)readData; } как я понял, это не работает полностью, как я планировал; это вызывает ошибку с примитивными типами, такими как ...
Элегантный способ объединить несколько коллекций элементов?
скажем, у меня есть произвольное количество коллекций, каждая из которых содержит объекты одного типа (например, List<int> foo и List<int> bar). Если эти коллекции сами были в коллекции (например, типа List<List<int>>, Я мог бы использовать SelectMany объединить их все в одну коллекцию. однако, если эти коллекции уже не находятся в одной коллекции, мне кажется, что мне придется написать такой метод: public static IEnumerable<T> Combine<T>(params ICollection& ...
c# сравнить два общих значения [дубликат]
Возможные Дубликаты:не может оператор == быть применен к универсальным типам в C#? я закодировал что-то вроде этого: public bool IsDataChanged() { T value1 = GetValue2; T value2 = GetValue1(); return (valueInDB != valueFromView); } сейчас функция не компилируется с ошибкой "оператора!= не может применяться к операндам типа 'Т' и 'T'". Что мне нужно сделать, чтобы эта функция работала ? ...
как создать универсальный конструктор для универсального класса в java?
Я хочу создать класс KeyValue, но в общем виде, и это то, что я написал: public class KeyValue<T,E> { private T key; private E value; /** * @return the key */ public T getKey() { return key; } /** * @param key the key to set */ public void setKey(T key) { this.key = key; } /** * @return the value */ public E getValue() { return value; } /** * @param value the value to set */ ...