Pytania otagowane jako generics

Generics to forma parametrycznego polimorfizmu występująca w wielu językach, w tym w językach .NET, Java, Swift i Rust.


7
Jak mogę dodać do listy <? rozszerza liczbę> struktury danych?
Mam listę, która jest zadeklarowana w ten sposób: List&lt;? extends Number&gt; foo3 = new ArrayList&lt;Integer&gt;(); Próbowałem dodać 3 do foo3. Jednak pojawia się następujący komunikat o błędzie: 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 



3
C # - wiele typów ogólnych na jednej liście
To chyba nie jest możliwe, ale mam taką klasę: public class Metadata&lt;DataType&gt; where DataType : struct { private DataType mDataType; } Jest w tym coś więcej, ale nie komplikujmy. Typ ogólny (DataType) jest ograniczony do typów wartości przez instrukcję where. To, co chcę zrobić, to mieć listę tych obiektów metadanych …
153 c#  generics 

7
Definicja Java Enum
Wydawało mi się, że całkiem dobrze rozumiem typy generyczne Javy, ale potem w java.lang.Enum natknąłem się na następujące rzeczy: class Enum&lt;E extends Enum&lt;E&gt;&gt; Czy ktoś mógłby wyjaśnić, jak interpretować ten parametr typu? Dodatkowe punkty za udostępnienie innych przykładów, w których można zastosować podobny parametr typu.
151 java  generics  enums  crtp 

3
Odpowiednik mapy Java w C #
Próbuję przechowywać listę elementów w kolekcji za pomocą wybranego przeze mnie klucza. W Javie po prostu użyłbym Map w następujący sposób: class Test { Map&lt;Integer,String&gt; entities; public String getEntity(Integer code) { return this.entities.get(code); } } Czy istnieje równoważny sposób zrobienia tego w C #? System.Collections.Generic.Hashsetnie używa skrótu i ​​nie mogę …
150 c#  java  generics  collections 

7
Dlaczego literały wyliczenia Java nie powinny mieć ogólnych parametrów typu?
Wyliczenia Java są świetne. Więc są generyczne. Oczywiście wszyscy znamy ograniczenia tego ostatniego z powodu wymazywania typów. Ale jest jedna rzecz, której nie rozumiem, dlaczego nie mogę utworzyć takiego wyliczenia: public enum MyEnum&lt;T&gt; { LITERAL1&lt;String&gt;, LITERAL2&lt;Integer&gt;, LITERAL3&lt;Object&gt;; } Ten parametr typu ogólnego &lt;T&gt;może z kolei być przydatny w różnych miejscach. …
148 java  generics  enums 


9
Jaka jest różnica między <? super E> i <? rozszerza E>?
Jaka jest różnica między &lt;? super E&gt;i &lt;? extends E&gt;? Na przykład, gdy spojrzysz na klasę, zobaczysz java.util.concurrent.LinkedBlockingQueuenastępujący podpis dla konstruktora: public LinkedBlockingQueue(Collection&lt;? extends E&gt; c) a dla jednej metody: public int drainTo(Collection&lt;? super E&gt; c)
147 java  generics 


5
Jak przekazać typ klasy jako parametr funkcji
Mam ogólną funkcję, która wywołuje usługę internetową i serializuje odpowiedź JSON z powrotem do obiektu. 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 */ } To, co próbuję osiągnąć, jest odpowiednikiem …

5
Dlaczego Java nie zezwala na generyczne podklasy Throwable?
Według Java Language Sepecification , 3. edycja: Jest to błąd czasu kompilacji, jeśli klasa ogólna jest bezpośrednią lub pośrednią podklasą klasy Throwable. Chciałbym zrozumieć, dlaczego podjęto taką decyzję. Co jest nie tak z ogólnymi wyjątkami? (O ile wiem, typy generyczne są po prostu cukrem składniowym w czasie kompilacji i zostaną …

6
Nie można przekonwertować wartości typu „T” na
Jest to prawdopodobnie pytanie nowicjusza, ale Google, co zaskakujące, nie udzieliło odpowiedzi. Mam tę raczej sztuczną metodę T HowToCast&lt;T&gt;(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; } Pochodząc z tła C ++, spodziewałem się, że to zadziała. Jednak …
146 c#  .net  generics  casting 

11
Utwórz nowy obiekt z parametru typu w klasie ogólnej
Próbuję utworzyć nowy obiekt parametru typu w mojej klasie ogólnej. W mojej klasie Viewmam 2 listy obiektów typu ogólnego przekazanych jako parametry typu, ale kiedy próbuję zrobić new TGridView(), TypeScript mówi: Nie można znaleźć symbolu „TGridView To jest kod: module AppFW { // Represents a view export class View&lt;TFormView extends …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.