Pytania oznaczone «generics»

Meta technika, która pozwala na ustawienie niezawodnego typu w środowisku wykonawczym.

49
Co jest nie tak z rodzajami języka Java? [Zamknięte]

Kilka razy widziałem na tej stronie posty, które potępiają implementację generycznych Java. Teraz mogę szczerze powiedzieć, że nie miałem żadnych problemów z ich używaniem. Jednak sam nie próbowałem stworzyć ogólnej klasy. Jakie masz problemy z ogólną obsługą

35
Co to jest nadużycie generyczne?

Przeglądając jakiś kod, zauważyłem możliwość jego zmiany w celu użycia generycznych. Kod (zaciemniony) wygląda następująco: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } Ten kod można zastąpić...

29
Dobry ogólny system typów

Powszechnie przyjmuje się, że niektóre rodzaje Java zawiodły w ważnych sprawach. Połączenie symboli wieloznacznych i granic spowodowało powstanie poważnie nieczytelnego kodu. Jednak gdy patrzę na inne języki, naprawdę nie mogę znaleźć ogólnego systemu typów, z którego programiści są zadowoleni....

28
C # Generics - Jak uniknąć zbędnej metody?

Załóżmy, że mam dwie klasy, które wyglądają tak (pierwszy blok kodu i ogólny problem są związane z C #): class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } Klasy te nie mogą być w żaden sposób zmieniane (są częścią zespołu zewnętrznego). Dlatego...

20
Ogólny czy wspólny interfejs?

Nie pamiętam, kiedy ostatni raz pisałem lekcje ogólne. Za każdym razem, gdy wydaje mi się, że potrzebuję go po pewnym namyśle, wyciągam wniosek, że nie. Druga odpowiedź na to pytanie sprawiła, że ​​poprosiłem o wyjaśnienia (ponieważ nie mogę jeszcze komentować, zadałem nowe pytanie). Weźmy więc...

20
Kto rozszerza interfejsy? I dlaczego?

AFAIK, moje klasy klasy extendsnadrzędne i implementsinterfejsy. Ale natrafiam na sytuację, w której nie mogę użyć implements SomeInterface. Jest to deklaracja typów ogólnych. Na przykład: public interface CallsForGrow {...} public class GrowingArrayList <T implements CallsForGrow> // BAD,...

20
Jaka jest różnica między <? rozszerza Foo> i <Foo>

Wydaje mi się, że mam nieporozumienie na temat różnicy między <Foo>i <? extends Foo>. Z mojego zrozumienia, gdybyśmy mieli ArrayList<Foo> foos = new ArrayList<>(); Oznacza to, że Foodo tej listy tablic można dodać obiekty typu . Ponieważ podklasy Foosą również typu Foo,...

16
Jak wdrażane są leki generyczne?

To pytanie z perspektywy wewnętrznych kompilatorów. Interesują mnie generyczne, a nie szablony (C ++), więc zaznaczyłem pytanie C #. Nie Java, ponieważ AFAIK generyczne w obu językach różnią się implementacjami. Kiedy patrzę na języki bez generyków, jest to dość proste, możesz zweryfikować...