Pytania otagowane jako generics

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


7
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ą Javy?
49 java  generics 


4
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ć ogólnymi, takimi jak: public void DoAllTheThings<T>(object[] possibleTargets[0]) { var someProperty = type(T).getProperty(possibleTargets[0]); ... } Badając zalety i wady …
35 generics 

12
Czy to zapach kodu do przechowywania ogólnych obiektów w kontenerze, a następnie pobierania obiektów i spuszczania obiektów z kontenera?
Na przykład mam grę, która ma narzędzia do zwiększenia zdolności gracza: Tool.h class Tool{ public: std::string name; }; I niektóre narzędzia: Sword.h class Sword : public Tool{ public: Sword(){ this->name="Sword"; } int attack; }; Shield.h class Shield : public Tool{ public: Shield(){ this->name="Shield"; } int defense; }; MagicCloth.h class MagicCloth …

3
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. Jeśli weźmiemy pod uwagę następujące cele projektowania takiego systemu typów: Zawsze …

8
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 …
28 c#  generics 

1
Jaka jest różnica między <? rozszerza Foo> i <Foo>
Wydaje mi się, że mam nieporozumienie na temat różnicy między &lt;Foo&gt;i &lt;? extends Foo&gt;. Z mojego zrozumienia, gdybyśmy mieli ArrayList&lt;Foo&gt; foos = new ArrayList&lt;&gt;(); Oznacza to, że Foodo tej listy tablic można dodać obiekty typu . Ponieważ podklasy Foosą również typu Foo, można je również dodawać bezbłędnie, jak pokazano za …
20 java  generics 

3
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 podany kod jako przykład przypadku, …

4
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 &lt;T implements CallsForGrow&gt; // BAD, won't work! extends ArrayList&lt;T&gt; Tutaj używanie implementsjest składniowo zabronione. Najpierw pomyślałem, że używanie …

8
Jak upowszechnić wiedzę na temat programowania ogólnego wśród członków zespołu?
Pozostaję w środowisku, w którym ludzie wierzą: Generics Java to funkcja używana wyłącznie do pisania bibliotek, a nie do prawdziwego kodowania. C ++ jest językiem programowania OO; templatejest funkcją opcjonalną i możliwą do uniknięcia Chociaż osoby te polegają w dużej mierze na bibliotekach napisanych przy użyciu programowania ogólnego (np. STL, …
20 java  c++  templates  generics 



2
Czy przydatny jest polimorfizm parametryczny wyższego rzędu?
Jestem prawie pewien, że wszyscy znają ogólne metody formularza: T DoSomething&lt;T&gt;(T item) Ta funkcja jest również nazywana parametrycznie polimorficzną (PP), w szczególności PP rangi 1 . Powiedzmy, że tę metodę można przedstawić za pomocą obiektu funkcji formularza: &lt;T&gt; : T -&gt; T Oznacza to, &lt;T&gt;że pobiera jeden parametr typu i …

3
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ć definicję klasy, dodać ją do hierarchii i to …
16 c#  generics 

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.