Вопросы с тегом «generics»

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

20
Как отсортировать список <T> по свойству объекта
У меня есть класс с именем , Orderкоторый имеет свойства , такие как OrderId, OrderDate, Quantity, и Total. У меня есть список этого Orderкласса: List&lt;Order&gt; objListOrder = new List&lt;Order&gt;(); GetOrderList(objListOrder); // fill list of orders Теперь я хочу отсортировать список по одному свойству Orderобъекта, например, мне нужно отсортировать его по …
1252 c#  generics  list  sorting 

21
Создать общий метод, ограничивающий перечисление
Я строю функцию для расширения Enum.Parseконцепции, которая Позволяет проанализировать значение по умолчанию в случае, если значение Enum не найдено Нечувствителен к регистру Поэтому я написал следующее: public static T GetEnumFromString&lt;T&gt;(string value, T defaultValue) where T : Enum { if (string.IsNullOrEmpty(value)) return defaultValue; foreach (T item in Enum.GetValues(typeof(T))) { if (item.ToString().ToLower().Equals(value.Trim().ToLower())) …

30
Как создать универсальный массив в Java?
Из-за реализации обобщений Java вы не можете иметь такой код: public class GenSet&lt;E&gt; { private E a[]; public GenSet() { a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation } } Как я могу реализовать это при сохранении безопасности типов? Я видел решение на форумах Java, которое выглядит следующим образом: …

8
Как использовать рефлексию для вызова универсального метода?
Каков наилучший способ вызова универсального метода, когда параметр типа неизвестен во время компиляции, а вместо этого получается динамически во время выполнения? Рассмотрим следующий пример кода - внутри Example()метода, какой самый краткий способ вызвать, GenericMethod&lt;T&gt;()используя Typeхранимую в myTypeпеременной? public class Sample { public void Example(string typeName) { Type myType = FindType(typeName); …
1071 c#  .net  generics  reflection 

17
Является ли List <Dog> подклассом List <Animal>? Почему дженерики Java не являются неявно полиморфными?
Я немного озадачен тем, как дженерики Java обрабатывают наследование / полиморфизм. Предположим следующую иерархию - Животное (родитель) Собака - Кот (Дети) Итак, предположим, у меня есть метод doSomething(List&lt;Animal&gt; animals). По всем правилам наследования и полиморфизма я бы предположил, что a List&lt;Dog&gt; есть a, List&lt;Animal&gt;а a List&lt;Cat&gt; есть a, List&lt;Animal&gt;и поэтому …

14
Что такое PECS (продюсер продвигает Consumer Super)?
На этом вопросе есть ответы на Переполнение стека на русском : Использование подстановочных знаков в Generics Java Я сталкивался с PECS (сокращение от Producer extendsи Consumersuper ), читая дженерики. Может кто-нибудь объяснить мне, как использовать PECS для разрешения путаницы между extendsи super?


16
Как получить тип T от члена универсального класса или метода?
Допустим, у меня есть универсальный член в классе или методе, поэтому: public class Foo&lt;T&gt; { public List&lt;T&gt; Bar { get; set; } public void Baz() { // get type of T } } Когда я создаю экземпляр класса, то Tстановится MyTypeObject1, так что класс имеет общий список имущества: List&lt;MyTypeObject1&gt;. То …
675 c#  .net  generics 

15
Что такое необработанный тип и почему мы не должны его использовать?
Вопросов: Что такое необработанные типы в Java, и почему я часто слышу, что они не должны использоваться в новом коде? Какая альтернатива, если мы не можем использовать необработанные типы, и как это лучше?
663 java  generics  raw-types 

23
Как я обращаюсь к непроверенным предупреждениям броска?
Затмение дает мне предупреждение о следующей форме: Безопасность типов: непроверенное приведение из объекта в HashMap Это от вызова API, который я не могу контролировать, который возвращает Object: HashMap&lt;String, String&gt; getItems(javax.servlet.http.HttpSession session) { HashMap&lt;String, String&gt; theHash = (HashMap&lt;String, String&gt;)session.getAttribute("attributeKey"); return theHash; } Я хотел бы избежать предупреждений Eclipse, если это возможно, …
611 java  generics  warnings 

26
Как мне клонировать общий список в C #?
У меня есть общий список объектов в C #, и я хочу клонировать этот список. Элементы в списке являются клонируемыми, но, похоже, нет возможности сделать это list.Clone(). Есть ли простой способ обойти это?
593 c#  generics  list  clone 

19
Как сделать метод, возвращающий тип, универсальным?
Рассмотрим этот пример (типичный для книг ООП): У меня есть Animalкласс, где у каждого Animalможет быть много друзей. И подклассы, как Dog, Duckи Mouseт. Д. , Которые добавляют определенное поведение, как bark(), quack()и т. Д. Вот Animalкласс: public class Animal { private Map&lt;String,Animal&gt; friends = new HashMap&lt;&gt;(); public void addFriend(String …

27
Создать экземпляр универсального типа в Java?
Можно ли создать экземпляр универсального типа в Java? Я думаю, основываясь на том, что я видел, что ответ no( из-за стирания типа ), но мне было бы интересно, если кто-нибудь увидит что-то, что мне не хватает: class SomeContainer&lt;E&gt; { E createContents() { return what??? } } РЕДАКТИРОВАТЬ: Оказывается, супер токены …
576 java  generics 

13
Как я могу вернуть NULL из универсального метода в C #?
У меня есть общий метод с этим (фиктивным) кодом (да, я знаю, что в IList есть предикаты, но мой код использует не IList, а какую-то другую коллекцию, в любом случае это не имеет значения для вопроса ...) static T FindThing&lt;T&gt;(IList collection, int id) where T : IThing, new() { foreach …
546 c#  generics 

7
Почему C # запрещает универсальные типы атрибутов?
Это вызывает исключение во время компиляции: public sealed class ValidatesAttribute&lt;T&gt; : Attribute { } [Validates&lt;string&gt;] public static class StringValidation { } Я понимаю, что C # не поддерживает общие атрибуты. Однако, после долгих поисков, я не могу найти причину. Кто-нибудь знает, почему родовые типы не могут быть получены из Attribute? …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.