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.

20
Jak posortować listę <T> według właściwości w obiekcie
Mam klasy o nazwie Order, która ma właściwości takie jak OrderId, OrderDate, Quantity, i Total. Mam listę tej Orderklasy: List&lt;Order&gt; objListOrder = new List&lt;Order&gt;(); GetOrderList(objListOrder); // fill list of orders Teraz chcę posortować listę na podstawie jednej właściwości Orderobiektu, na przykład muszę posortować ją według daty zamówienia lub identyfikatora zamówienia. …
1247 c#  generics  list  sorting 

21
Utwórz metodę ogólną ograniczającą T do wyliczenia
Buduję funkcję, aby rozszerzyć tę Enum.Parsekoncepcję Umożliwia parsowanie wartości domyślnej w przypadku, gdy nie zostanie znaleziona wartość Enum Rozróżnia małe i wielkie litery Napisałem więc: 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())) return …

30
Jak utworzyć ogólną tablicę w Javie?
Ze względu na implementację generycznych Java, nie możesz mieć takiego kodu: public class GenSet&lt;E&gt; { private E a[]; public GenSet() { a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation } } Jak mogę to zaimplementować, zachowując bezpieczeństwo typu? Na forach Java zobaczyłem takie rozwiązanie: import java.lang.reflect.Array; class Stack&lt;T&gt; { …

8
Jak użyć refleksji do wywołania metody ogólnej?
Jaki jest najlepszy sposób na wywołanie metody ogólnej, gdy parametr type nie jest znany w czasie kompilacji, a zamiast tego jest uzyskiwany dynamicznie w czasie wykonywania? Rozważ następujący przykładowy kod - w jaki Example()sposób najbardziej zwięzły sposób wywołać GenericMethod&lt;T&gt;()za pomocą Typeprzechowywanej w myTypezmiennej zmiennej? public class Sample { public void …
1069 c#  .net  generics  reflection 

17
Czy List <Dog> jest podklasą List <Animal>? Dlaczego generyczne produkty Java nie są domyślnie polimorficzne?
Jestem trochę zdezorientowany, jak generycy Java radzą sobie z dziedziczeniem / polimorfizmem. Załóżmy następującą hierarchię - Animal (Parent) Pies - Kot (Dzieci) Załóżmy, że mam metodę doSomething(List&lt;Animal&gt; animals). Przez wszystkich zasad dziedziczenia i polimorfizmu, chciałbym założyć, że List&lt;Dog&gt; jestList&lt;Animal&gt; i List&lt;Cat&gt; jestList&lt;Animal&gt; - a więc albo można być przekazywane do …



16
Jak uzyskać typ T od członka ogólnej klasy lub metody?
Powiedzmy, że mam ogólny element w klasie lub metodzie, więc: public class Foo&lt;T&gt; { public List&lt;T&gt; Bar { get; set; } public void Baz() { // get type of T } } Kiedy instancję klasy, Tstaje się MyTypeObject1, więc klasa ma ogólną listę właściwość: List&lt;MyTypeObject1&gt;. To samo dotyczy metody ogólnej …
675 c#  .net  generics 


23
Jak reagować na niezaznaczone ostrzeżenia dotyczące rzutowania?
Eclipse wyświetla mi ostrzeżenie o następującej formie: Bezpieczeństwo typu: Niezaznaczone rzutowanie z Object na HashMap Wynika to z wywołania interfejsu API, nad którym nie mam kontroli, który zwraca obiekt: 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; } Jeśli to możliwe, chciałbym unikać ostrzeżeń Eclipse, …
610 java  generics  warnings 


19
Jak ustawić rodzaj zwracanej metody na rodzajowy?
Rozważ ten przykład (typowy w książkach OOP): Mam Animalzajęcia, w których każdy Animalmoże mieć wielu przyjaciół. I podklasy podoba Dog, Duck, Mouseitp, które jak dodać specyficzne zachowanie bark(), quack()itd. Oto Animalklasa: public class Animal { private Map&lt;String,Animal&gt; friends = new HashMap&lt;&gt;(); public void addFriend(String name, Animal animal){ friends.put(name,animal); } public …

27
Utworzyć wystąpienie typu ogólnego w Javie?
Czy w Javie można utworzyć instancję typu ogólnego? Myślę na podstawie tego, co widziałem, że odpowiedź brzmi no(z powodu usunięcia typu ), ale byłbym zainteresowany, gdyby ktoś mógł zobaczyć coś, czego mi brakuje. class SomeContainer&lt;E&gt; { E createContents() { return what??? } } EDYCJA: Okazuje się, że tokenów Super Type …
576 java  generics 

13
Jak mogę zwrócić NULL z ogólnej metody w C #?
Mam ogólną metodę z tym (obojętnym) kodem (tak, wiem, że IList ma predykaty, ale mój kod nie używa IList, ale innej kolekcji, w każdym razie nie ma to znaczenia dla pytania ...) static T FindThing&lt;T&gt;(IList collection, int id) where T : IThing, new() { foreach T thing in collecion { …
546 c#  generics 

7
Dlaczego C # zabrania generycznych typów atrybutów?
Powoduje to wyjątek czasu kompilacji: public sealed class ValidatesAttribute&lt;T&gt; : Attribute { } [Validates&lt;string&gt;] public static class StringValidation { } Wiem, że C # nie obsługuje atrybutów ogólnych. Jednak po długim Googlingu nie mogę znaleźć powodu. Czy ktoś wie, dlaczego typy ogólne nie mogą pochodzić Attribute? Jakieś teorie?

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.