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

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

3
Выберите словарь <T1, T2> с помощью LINQ
Я использовал ключевое слово «select» и метод расширения для возврата IEnumerable&lt;T&gt;с LINQ, но мне нужно вернуть универсальный Dictionary&lt;T1, T2&gt;и не могу понять это. Пример, из которого я узнал, использовал что-то в форме, подобной следующей: IEnumerable&lt;T&gt; coll = from x in y select new SomeClass{ prop1 = value1, prop2 = value2 …
171 c#  .net  linq  generics 

2
Общая верхняя граница возвращаемого типа - интерфейс против класса - удивительно правильный код
Это пример из стороннего библиотечного API, но упрощенный. Скомпилировано с Oracle JDK 8u72 Рассмотрим эти два метода: &lt;X extends CharSequence&gt; X getCharSequence() { return (X) "hello"; } &lt;X extends String&gt; X getString() { return (X) "hello"; } Оба сообщают о предупреждении «непроверенный актерский состав» - я понимаю, почему. Меня сбивает …
171 java  generics  java-8 


4
Func <T> без параметра
Могу ли я передать метод с параметром out как Func? public IList&lt;Foo&gt; FindForBar(string bar, out int count) { } // somewhere else public IList&lt;T&gt; Find(Func&lt;string, int, List&lt;T&gt;&gt; listFunction) { } Для Func нужен тип, поэтому out не будет компилироваться, а для вызова listFunction требуется int и не будет разрешен вход. …
167 c#  .net  linq  generics  func 

14
foreach vs someList.ForEach () {}
Существует много способов перебора коллекции. Любопытно, есть ли какие-либо различия, или почему вы бы использовали один способ по сравнению с другим. Первый тип: List&lt;string&gt; someList = &lt;some way to init&gt; foreach(string s in someList) { &lt;process the string&gt; } Другой путь: List&lt;string&gt; someList = &lt;some way to init&gt; someList.ForEach(delegate(string s) …
167 c#  .net  generics  loops  enumeration 

13
Как конвертировать int [] в Integer [] в Java?
Я новичок в Java и очень смущен. У меня большой набор данных длиной 4 int[] и я хочу подсчитать, сколько раз встречается каждая конкретная комбинация из 4 целых чисел. Это очень похоже на подсчет частот слов в документе. Я хочу создать Map&lt;int[], double&gt; который отображает каждое значение int [] на …


7
Как сделать тип возвращаемого значения для метода универсальным?
Есть ли способ сделать этот метод универсальным, чтобы я мог вернуть строку, bool, int или double? Прямо сейчас он возвращает строку, но если он может найти «true» или «false» в качестве значения конфигурации, я хотел бы, например, вернуть bool. public static string ConfigSetting(string settingName) { return ConfigurationManager.AppSettings[settingName]; }
166 c#  .net  generics  return-type 

9
Как сделать класс Java, который реализует один интерфейс с двумя универсальными типами?
У меня общий интерфейс public interface Consumer&lt;E&gt; { public void consume(E e); } У меня есть класс, который использует два типа объектов, поэтому я хотел бы сделать что-то вроде: public class TwoTypesConsumer implements Consumer&lt;Tomato&gt;, Consumer&lt;Apple&gt; { public void consume(Tomato t) { ..... } public void consume(Apple a) { ...... } …

11
Как я могу использовать интерфейс как ограничение общего типа C #?
Есть ли способ получить следующее объявление функции? public bool Foo&lt;T&gt;() where T : interface; то есть. где T - тип интерфейса (аналогично where T : class, и struct). В настоящее время я согласился на: public bool Foo&lt;T&gt;() where T : IBase; Где IBase определяется как пустой интерфейс, который наследуется всеми …

4
Что такое овеществление?
Я знаю, что Java реализует параметрический полиморфизм (Generics) с стиранием. Я понимаю, что такое стирание. Я знаю, что C # реализует параметрический полиморфизм с овеществлением. Я знаю, что может заставить тебя написать public void dosomething(List&lt;String&gt; input) {} public void dosomething(List&lt;Int&gt; input) {} или что вы можете знать во время выполнения, …
163 c#  generics  reification 

12
Джексон - десериализация с использованием универсального класса
У меня есть строка json, которую я должен де-сериализовать до следующего класса class Data &lt;T&gt; { int found; Class&lt;T&gt; hits } Как мне это сделать? Это обычный способ mapper.readValue(jsonString, Data.class); Но как я могу сказать, что означает T?
161 java  json  generics  jackson 

8
Почему массивы ковариантны, а дженерики инвариантны?
От эффективной Явы Джошуа Блох, Массивы отличаются от универсального типа двумя важными способами. Первые массивы ковариантны. Обобщения являются инвариантами. Ковариант просто означает, что если X является подтипом Y, то X [] также будет подтипом Y []. Массивы являются ковариантными, так как string является подтипом Object So String[] is subtype of …

7
C # Создать новый T ()
Вы можете увидеть, что я пытаюсь (но не могу) сделать с помощью следующего кода: protected T GetObject() { return new T(); } Любая помощь будет принята с благодарностью. РЕДАКТИРОВАТЬ: Контекст был следующим. Я играл с пользовательским классом контроллеров для всех контроллеров, используя стандартизированные методы. Поэтому в контексте мне нужно было …
159 c#  .net  generics  c#-4.0  .net-4.0 

14
Как мне клонировать общий список в Java?
У меня есть, ArrayList&lt;String&gt;что я хотел бы вернуть копию. ArrayListимеет метод клона, который имеет следующую подпись: public Object clone() После того, как я вызову этот метод, как я приведу возвращенный объект обратно ArrayList&lt;String&gt;?

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