Запитання з тегом «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, …
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 

7
Mockito.any () передає інтерфейс із Generics
чи можна передавати тип інтерфейсу з дженериками? Інтерфейс: public interface AsyncCallback&lt;T&gt; У моєму методі тестування: Mockito.any(AsyncCallback.class) Поставивши &lt;ResponseX&gt;позаду чи не .classпрацював.
171 java  generics  mockito 

4
Функція <T> з параметром out
Чи можу я передати метод із параметром 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 потребує типу, щоб його не компілювали там, а для виклику 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 

8
Чому масиви коваріантні, але генеричні дані інваріантні?
З ефективної Java Джошуа Блоха, Масиви відрізняються від загального типу двома важливими способами. Перші масиви є коваріантними. Дженріки інваріантні. Коваріант просто означає, що якщо X є підтипом Y, то X [] також буде підтипом Y []. Масиви є коваріантними, оскільки рядок є підтипом Object So String[] is subtype of Object[] …

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;?

10
Загальний список - переміщення елемента в списку
Отже, у мене є загальний список, і значення, oldIndexі newIndexзначення. Я хочу перемістити предмет на oldIndex, до newIndex... якомога простіше. Будь-які пропозиції? Примітка Елемент повинен бути в кінці між елементами на (newIndex - 1)і newIndex до його вилучення.
155 c#  .net  generics  list 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.