Запитання з тегом «generics»

Генеріки - це форма параметричного поліморфізму, що зустрічається в різних мовах, включаючи мови NET, Java, Swift та Rust.

5
Проблема з незмінним типом?: Умовний оператор
Може хтось пояснить, чому це працює в C # .NET 2.0: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ... але це не так: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); Остання форма дає мені помилку компіляції: "Тип умовного вираження неможливо визначити, оскільки …

7
Як я можу додати до списку <? розширює число> структури даних?
У мене є список, який оголошено так: List&lt;? extends Number&gt; foo3 = new ArrayList&lt;Integer&gt;(); Я спробував додати 3 до foo3. Однак я отримую таке повідомлення про помилку: The method add(capture#1-of ? extends Number) in the type List&lt;capture#1-of ? extends Number&gt; is not applicable for the arguments (ExtendsNumber)
154 java  generics 


8
Чи можна вирішити попередження компілятора "Створений загальний масив T для параметра varargs"?
Це спрощена версія розглянутого коду, один загальний клас використовує інший клас із загальними параметрами типу і йому потрібно передати один із загальних типів методу з параметрами varargs: class Assembler&lt;X, Y&gt; { void assemble(X container, Y... args) { ... } } class Component&lt;T&gt; { void useAssembler(T something) { Assembler&lt;String, T&gt; assembler …
153 java  generics 

3
C # - Кілька загальних типів в одному списку
Це, мабуть, неможливо, але у мене є такий клас: public class Metadata&lt;DataType&gt; where DataType : struct { private DataType mDataType; } Тут є більше, але давайте просто. Загальний тип (DataType) обмежений типами значень за допомогою оператора where. Що я хочу зробити - це перелік цих об’єктів метаданих різного типу (DataType). …
153 c#  generics 

7
Визначення Java Enum
Я думав, що я досить добре розумію Java-дженерики, але потім у java.lang.Enum натрапив на таке: class Enum&lt;E extends Enum&lt;E&gt;&gt; Може хтось пояснить, як інтерпретувати параметр цього типу? Бонусні бали за надання інших прикладів, де може бути використаний аналогічний параметр типу.
151 java  generics  enums  crtp 

3
Еквівалент Java-карти в C #
Я намагаюся провести список предметів у колекції з ключем на мій вибір. У Java я просто використовую Map так: class Test { Map&lt;Integer,String&gt; entities; public String getEntity(Integer code) { return this.entities.get(code); } } Чи існує еквівалентний спосіб зробити це в C #? System.Collections.Generic.Hashsetне використовує хеш, і я не можу визначити …
150 c#  java  generics  collections 

7
Чому не повинні літери Java enum мати загальні параметри типу?
Переваги на Java великі. Так само і дженерики. Звичайно, всі ми знаємо обмеження останнього через стирання типу. Але є одне, чого я не розумію. Чому я не можу створити такий перелік: public enum MyEnum&lt;T&gt; { LITERAL1&lt;String&gt;, LITERAL2&lt;Integer&gt;, LITERAL3&lt;Object&gt;; } Цей параметр загального типу &lt;T&gt;в свою чергу може бути корисним у …
148 java  generics  enums 

4
Чому приклад не складається, він же як працює (спів-, проти-, і-) дисперсія?
Виходячи з цього питання , чи може хтось пояснити наступне у Scala: class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } Я розумію різницю між +Tі Tв декларації типу (вона складається, якщо я використовую T). Але як тоді насправді записати клас, коваріантний …

9
Яка різниця між <? супер E> і <? подовжує E>?
У чому різниця між &lt;? super E&gt;і &lt;? extends E&gt;? Наприклад, коли ви дивитесь на клас, java.util.concurrent.LinkedBlockingQueueдля конструктора є такий підпис: public LinkedBlockingQueue(Collection&lt;? extends E&gt; c) і для одного методу: public int drainTo(Collection&lt;? super E&gt; c)
147 java  generics 


5
Як передавати тип класу як параметр функції
У мене є загальна функція, яка викликає веб-службу і серіалізує відповідь JSON на об'єкт. class func invokeService&lt;T&gt;(service: String, withParams params: Dictionary&lt;String, String&gt;, returningClass: AnyClass, completionHandler handler: ((T) -&gt; ())) { /* Construct the URL, call the service and parse the response */ } Що я намагаюся досягти, це еквівалент цього …

5
Чому Java не допускає загальні підкласи Throwable?
Відповідно до специфікації мови Java , 3-е видання: Це помилка часу компіляції, якщо загальний клас є прямим або непрямим підкласом Throwable. Я хочу зрозуміти, чому було прийнято таке рішення. Що не так із загальними винятками? (Наскільки я знаю, дженерики - це просто синтаксичний цукор за часом компіляції, і вони будуть …

6
Значення типу "T" неможливо перетворити в
Ймовірно, це питання початківця, але Google на диво не дав відповіді. У мене є цей досить штучний метод T HowToCast&lt;T&gt;(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; } Виходячи з C ++ фону, я очікував, що це спрацює. …
146 c#  .net  generics  casting 

11
Створіть новий об’єкт із параметра type у загальному класі
Я намагаюся створити новий об’єкт параметру типу у своєму загальному класі. У моєму класі у Viewмене є 2 списки об’єктів загального типу, переданих як параметри типу, але коли я намагаюся зробити new TGridView(), TypeScript каже: Не вдалося знайти символ 'TGridView Це код: module AppFW { // Represents a view export …

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