Dlaczego Collection.remove (Object o) nie jest ogólna? Wydaje się, że Collection<E>mógłboolean remove(E o); Następnie, gdy przypadkowo spróbujesz usunąć (na przykład) Set<String>zamiast każdego pojedynczego ciągu z a Collection<String>, byłby to błąd czasu kompilacji zamiast późniejszego problemu z debugowaniem.
Próbuję zrozumieć cel reifiedsłowa kluczowego, najwyraźniej pozwala nam to na refleksję na temat leków generycznych . Jednak kiedy to pominę, działa równie dobrze. Czy ktoś chciałby wyjaśnić, kiedy to rzeczywiście robi różnicę ?
Czy można uzyskać typ parametru generycznego? Przykład: public final class Voodoo { public static void chill(List<?> aListWithTypeSpiderMan) { // Here I'd like to get the Class-Object 'SpiderMan' Class typeOfTheList = ???; } public static void main(String... args) { chill(new ArrayList<SpiderMan>()); } }
Czy istnieje sposób na rzutowanie obiektu w celu zwrócenia wartości metody? Próbowałem w ten sposób, ale dał wyjątek czasu kompilacji w części „instanceof”: public static <T> T convertInstanceOfObject(Object o) { if (o instanceof T) { return (T) o; } else { return null; } } Próbowałem też tego, ale dał …
Jestem nowy w programowaniu na Maca / iPhone'a i Objective-C. W C # i Javie mamy „generics”, klasy kolekcji, których składowe mogą być tylko zadeklarowanego typu. Na przykład w C # Dictionary<int, MyCustomObject> może zawierać tylko klucze będące liczbami całkowitymi i wartościami typu MyCustomObject. Czy podobny mechanizm istnieje w Objective-C?
Obecnie uczę się języka Java i ostatnio zaskoczyły mnie nawiasy ostre (<>). Co dokładnie mają na myśli? public class Pool<T>{ public interface PoolFactory<T>{ public T createObject(); } this.freeObjects = new ArrayList<T>(maxsize) } Co to <T>oznacza? Czy to znaczy, że mogę stworzyć obiekt typu T?
Mam listę wartości całkowitych (Lista) i chciałbym wygenerować ciąg wartości rozdzielanych przecinkami. Oznacza to, że wszystkie pozycje z listy są wyświetlane na pojedynczej liście rozdzielanej przecinkami. Moje myśli ... 1. Przekaż listę do metody. 2. Użyj narzędzia stringbuilder do iteracji listy i dołącz przecinki. 3. Przetestuj ostatni znak i jeśli …
Próbuję dokonać konwersji danych. Niestety, większość danych jest w łańcuchach, gdzie powinny być int lub double, itd ... Więc mam coś takiego: double? amount = Convert.ToDouble(strAmount); Problem z tym podejściem polega na tym, że jeśli strAmount jest puste, jeśli jest puste, chcę, aby kwota była zerowa, więc kiedy dodam go …
Używam Eclipse, aby pomóc mi oczyścić kod, aby poprawnie używać generycznych języków Java. W większości przypadków doskonale radzi sobie z wnioskami o typach, ale są pewne przypadki, w których wywnioskowany typ musi być tak ogólny, jak to tylko możliwe: Object. Ale wydaje się, że Eclipse daje mi możliwość wyboru między …
Wygląda na to, że nie ma ogólnej implementacji OrderedDictionary(która znajduje się w System.Collections.Specializedprzestrzeni nazw) w .NET 3.5. Czy jest taki, którego mi brakuje? Znalazłem implementacje zapewniające tę funkcjonalność, ale zastanawiałem się, czy / dlaczego nie ma standardowej implementacji od razu po wyjęciu z pudełka i czy ktoś wie, czy jest …
Chcę utworzyć klasę, która może przechowywać obiekty zgodne z określonym protokołem. Obiekty powinny być przechowywane w tablicy typu. Zgodnie z dokumentacją Swift protokoły mogą być używane jako typy: Ponieważ jest to typ, możesz używać protokołu w wielu miejscach, w których dozwolone są inne typy, w tym: Jako typ parametru lub …
Zanim przejrzę moją ogólną strukturę danych pod kątem indeksu wartości, chciałbym sprawdzić, czy jest to nawet wystąpienie typu, thisdo którego został sparametryzowany. Ale Eclipse narzeka, kiedy to robię: @Override public int indexOf(Object arg0) { if (!(arg0 instanceof E)) { return -1; } Oto komunikat o błędzie: Nie można wykonać sprawdzenia …
Rozważ ten kod: public class DummyClass { public List<? extends Number> dummyMethod() { return new ArrayList<Integer>(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List<? extends Number> someList = new ArrayList<Integer>(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } Kompilator skarży się na wiersz, który …
Chciałbym przeprowadzić test, jeśli obiekt jest typu ogólnego. Próbowałem następujących bez powodzenia: public bool Test() { List<int> list = new List<int>(); return list.GetType() == typeof(List<>); } Co robię źle i jak mam wykonać ten test?
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.