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
Czym dokładnie jest „klasa specjalna”?
Po nieudanej kompilacji czegoś podobnego do następującego: public class Gen<T> where T : System.Array { } z błędem Ograniczenie nie może być klasą specjalną `` System.Array '' Zacząłem się zastanawiać, czym właściwie są „specjalne zajęcia”? Ludziom często wydaje się, że popełniają ten sam rodzaj błędu, gdy określają System.Enumw ogólnym ograniczeniu. …

5
zwracanie obiektu Void
Jaki jest prawidłowy sposób zwracania Voidtypu, jeśli nie jest to typ pierwotny? Na przykład. Obecnie używam null, jak poniżej. interface B<E>{ E method(); } class A implements B<Void>{ public Void method(){ // do something return null; } }

2
C # rodzajowy „gdzie ograniczenie” z definicją „dowolnego typu ogólnego”?
Podam przykład: Mam ogólną definicję klasy / interfejsu: interface IGenericCar< T > {...} Mam inną klasę / interfejs, który chcę powiązać z klasą powyżej, na przykład: interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...} Zasadniczo chcę, aby mój ogólny IGarrage był zależny IGenericCar, niezależnie od …

2
Java niezaznaczona: niezaznaczone tworzenie ogólnych tablic dla parametru varargs
Ustawiłem Netbeans tak, aby wyświetlał niesprawdzone ostrzeżenia w moim kodzie Java, ale nie rozumiem błędu w następujących wierszach: private List<String> cocNumbers; private List<String> vatNumbers; private List<String> ibans; private List<String> banks; ... List<List<String>> combinations = Utils.createCombinations(cocNumbers, vatNumbers, ibans); Daje: [unchecked] unchecked generic array creation for varargs parameter of type List<String>[] Źródło …

14
Jak zainicjować List <T> do danego rozmiaru (w przeciwieństwie do pojemności)?
.NET oferuje ogólny kontener listy, którego wydajność jest prawie identyczna (zobacz pytanie Wydajność tablic a listy). Jednak są one zupełnie inne w inicjalizacji. Tablice są bardzo łatwe do zainicjowania z wartością domyślną iz definicji mają już określony rozmiar: string[] Ar = new string[10]; Co pozwala na bezpieczne przypisywanie losowych przedmiotów, …

4
Wyrażenie lambda i metoda generyczna
Załóżmy, że mam ogólny interfejs: interface MyComparable&lt;T extends Comparable&lt;T&gt;&gt; { public int compare(T obj1, T obj2); } I metoda sort: public static &lt;T extends Comparable&lt;T&gt;&gt; void sort(List&lt;T&gt; list, MyComparable&lt;T&gt; comp) { // sort the list } Mogę wywołać tę metodę i przekazać jako argument wyrażenie lambda: List&lt;String&gt; list = Arrays.asList("a", …
111 java  generics  lambda  java-8 





5
Kotlin: Jak pracować z rzutami List: Unchecked Cast: kotlin.collections.List <Kotlin.Any?> To kotlin.colletions.List <Waypoint>
Chcę napisać funkcję, która zwraca każdą pozycję w pozycji, Listktóra nie jest pierwszą ani ostatnią pozycją (punkt pośredni). Funkcja pobiera dane ogólne List&lt;*&gt;jako dane wejściowe. Wynik powinien zostać zwrócony tylko wtedy, gdy elementy listy są typu Waypoint: fun getViaPoints(list: List&lt;*&gt;): List&lt;Waypoint&gt;? { list.forEach { if(it !is Waypoint ) return null …
108 list  generics  casting  kotlin 

8
Java Class.cast () a operator rzutowania
Podczas moich dni w C ++ uczono mnie o złu operatora rzutowania w stylu C, na początku z przyjemnością odkryłem, że w Javie 5 java.lang.Classnabyłem castmetodę. Pomyślałem, że wreszcie mamy OO sposób radzenia sobie z castingami. Okazuje się, że Class.castto nie to samo, co static_castw C ++. To jest bardziej …

3
Jackson i odniesienie do typów ogólnych
Chcę użyć biblioteki JSON JACKSON dla metody ogólnej w następujący sposób: public MyRequest&lt;T&gt; tester() { TypeReference&lt;MyWrapper&lt;T&gt;&gt; typeRef = new TypeReference&lt;MyWrapper&lt;T&gt;&gt;(); MyWrapper&lt;T&gt; requestWrapper = (MyWrapper&lt;T&gt;) JsonConverter.fromJson(jsonRequest, typeRef); return requestWrapper.getRequest(); } ... public class MyWrapper&lt;T&gt; { private MyRequest&lt;T&gt; request; public MyRequest&lt;T&gt; getRequest() { return request; } public void setRequest(MyRequest&lt;T&gt; request) { this.request …
107 java  json  generics  jackson 

2
Różnica między „*” i „Any” w kotlinach generycznych
Nie jestem pewien, czy w pełni rozumiem różnicę między SomeGeneric&lt;*&gt;i SomeGeneric&lt;Any&gt;. Myślę, że *reprezentuje wszystko (symbol wieloznaczny) i Anyreprezentuje obiekt, z którego dziedziczą WSZYSTKIE obiekty. Wygląda więc na to, że powinny być takie same, ale czy tak jest?
107 generics  kotlin 

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.