W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
W językach zorientowanych obiektowo, które obsługują ogólne parametry typu (znane również jako szablony klas i polimorfizm parametryczny, chociaż oczywiście każda nazwa ma inne konotacje), często możliwe jest określenie ograniczenia typu dla parametru typu, tak aby można było zejść z innego rodzaju. Na przykład jest to składnia w języku C #: …
Zgodnie z zasadą nr 4 Object Calisthenics autorstwa Jeffa Baya (RTF) w The ThoughtWorks Anthology zaleca się, aby „ używać kolekcji pierwszej klasy ”. Zasada 4: Kolekcje pierwszej klasy Stosowanie tej reguły jest proste: każda klasa zawierająca kolekcję nie powinna zawierać innych zmiennych składowych. Każda kolekcja jest pakowana we własną …
W innym pytaniu StackExchange zauważyłem, że ktoś używa tego prototypu: void DoSomething<T>(T arg) where T: SomeSpecificReferenceType { //Code.... } Mając na uwadze, że istnieje tylko ograniczenie jednego typu ( SomeSpecificReferenceType), jaka jest różnica i korzyść z pisania go w ten sposób, zamiast po prostu: void DoSomething(SomeSpecificReferenceType arg) { //Code.... } …
Mój typ IDE ( NetBeans ) sprawdza mój Collectionspodczas pisania kodu. Ale dlaczego muszę rzucić zwrócony przedmiot Object.clone()? Co jest w porządku Bez szkody, bez faulu. Ale nadal nie rozumiem. Czy sprawdzanie typu bez rzutowania zwrócony obiekt Object.clone()jest niemożliwe? Rodzajowych ramy sprawia, że myślę IDE mógł sprawdzić typ referencji obiektu …
Niektóre języki dopuszczają klasy i funkcje z parametrami typu (np. List<T>Gdzie Tmoże być dowolnym typem). Na przykład możesz mieć funkcję: List<S> Function<S, T>(List<T> list) Niektóre języki umożliwiają jednak rozszerzenie tej koncepcji o jeden poziom wyżej, co pozwala na posiadanie funkcji z podpisem: K<S> Function<K<_>, S, T>(K<T> arg) Gdzie K<_>sam jest …
W artykule „Rozszerzone badanie porównawcze obsługi języka dla programowania ogólnego” Garcia i in. interesujące porównanie funkcji języków programowania dla programowania ogólnego: z krótkim wyjaśnieniem terminologii: Czy ktoś może przetestować obsługę Scala dla ogólnego programowania w tym frameworku? Tj. Dodaj kolumnę do pierwszej tabeli z wyjaśnieniami, jeśli to możliwe.
Mam pewne interfejsy, które zamierzam wdrożyć w przyszłości przez strony trzecie, i sam zapewniam podstawowe wdrożenie. Będę używał tylko kilku, aby pokazać przykład. Obecnie są one zdefiniowane jako Pozycja: public interface Item { String getId(); String getName(); } ItemStack: public interface ItemStackFactory { ItemStack createItemStack(Item item, int quantity); } ItemStackContainer: …
Od jakiegoś czasu gram z C # dla Windows i ASP.net MVC. Ale nadal jestem niejasny w kilku obszarach. Próbuję zrozumieć podstawową różnicę między problemami z wydajnością a używaniem i zamianą podobnych rodzajów Ogólnych interfejsów kolekcji . Jaka jest podstawowa różnica między IEnumerable<T>, ICollection<T>, List<T>(Class)? Wydaje mi się, że używam …
Obecnie zajmuję się programowaniem w środowisku akademickim, więc mogę korzystać z wszystkiego, co chcę. Korzystam z biblioteki grafów boost do kilku rzeczy i zastanawiam się, czy warto zainwestować w głębsze zrozumienie GP. Jestem ciekawy - czy programowanie ogólne (GP) jest często używane w przemyśle? Domyślam się, że większość programistów jest …
Potrzebuję interfejsu, który zapewnia, że pewna metoda, w tym konkretny podpis, jest dostępna. Do tej pory mam to: public interface Mappable<M> { M mapTo(M mappableEntity); } Problem powstaje, gdy klasa powinna być odwzorowana na wiele innych encji. Idealnym przypadkiem byłoby to (nie java): public class Something implements Mappable<A>, Mappable<B> { …
Dlaczego tak się ArrayList<Integer>[] arr=new ArrayList<Integer>[40];dzieje , gdy próbuję utworzyć tablicę ArrayLists: występuje błąd, a Java nie pozwala na to? Czy istnieje powód związany z implementacją generycznych w Javie, generycznych w dowolnym języku lub czegoś arbitralnego?
Konfiguracja: Załóżmy, że mamy typ o nazwie, Iteratorktóry ma parametr typu Element: interface Iterator<Element> {} Następnie mamy interfejs, Iterablektóry ma jedną metodę, która zwróci Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Problem z Iteratorbyciem ogólnym jest taki, że musimy dostarczyć mu …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.