Więc dzisiaj natrafiłem na ciekawy problem. Mamy usługę sieci Web WCF, która zwraca IList. Nie było to nic wielkiego, dopóki nie chciałem tego uporządkować. Okazuje się, że interfejs IList nie ma wbudowanej metody sortowania. Skończyło się na tym, że użyłem tej ArrayList.Adapter(list).Sort(new MyComparer())metody do rozwiązania problemu, ale wydawało mi się …
Czy istnieje sposób określenia, czy obiekt jest instancją typu ogólnego? public <T> test(Object obj) { if (obj instanceof T) { ... } } To oczywiście nie działa. Czy jest alternatywa? Tak jak chcę użyć odbicia Java, aby utworzyć wystąpienie klasy, a następnie sprawdzić, czy jest to typ ogólny T.
Czy jest zabronione w C # implementowanie domyślnego konstruktora dla klasy ogólnej? Jeśli nie, dlaczego poniższy kod się nie kompiluje? (Kiedy <T>usuwam, kompiluje się) Jaki jest zatem prawidłowy sposób definiowania domyślnego konstruktora dla klasy generycznej? public class Cell<T> { public Cell<T>() { } } Błąd czasu kompilacji : Błąd 1 …
Nie jestem w stanie zrozumieć i nie mogłem znaleźć znaczenia słowa kluczowego out w kotlin. Tutaj możesz sprawdzić przykład: List<out T> Jeśli ktoś może wyjaśnić znaczenie tego. Byłoby to naprawdę mile widziane.
Wygląda na to, że obiekt List nie może być przechowywany w zmiennej List w C #, a nawet nie może być jawnie rzutowany w ten sposób. List<string> sl = new List<string>(); List<object> ol; ol = sl; powoduje, że nie można niejawnie przekonwertować typu System.Collections.Generic.List<string>naSystem.Collections.Generic.List<object> I wtedy... List<string> sl = new …
Czy można uzyskać następujący kod? Wiem, że to nie działa, ale zastanawiam się, czy istnieje obejście? Type k = typeof(double); List<k> lst = new List<k>();
Pisząc kod dla innej odpowiedzi na tej stronie, natknąłem się na tę osobliwość: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static <T extends Throwable> void sneakyThrow(Throwable t) throws T { throw (T) t; } static <T …
To bardziej dokumentacja niż prawdziwe pytanie. Wydaje się, że to nie zostało jeszcze rozwiązane w SO (chyba że to przegapiłem), więc oto: Wyobraź sobie klasę ogólną, która zawiera statyczny element członkowski: class Foo<T> { public static int member; } Czy istnieje nowe wystąpienie elementu członkowskiego dla każdej określonej klasy, czy …
Podobnie jak rzutowanie int na wyliczenie w C #, ale moje wyliczenie jest parametrem typu ogólnego. Jak najlepiej sobie z tym poradzić? Przykład: private T ConvertEnum<T>(int i) where T : struct, IConvertible { return (T)i; } Generuje błąd kompilatora Cannot convert type 'int' to 'T' Pełny kod jest następujący, gdzie …
Jestem nowicjuszem w Hibernate i piszę prostą metodę zwracania listy obiektów pasujących do określonego filtra. List<Foo>wydawało się naturalnym typem powrotu. Cokolwiek robię, nie mogę uszczęśliwić kompilatora, chyba że użyję brzydkiego @SuppressWarnings. import java.util.List; import org.hibernate.Query; import org.hibernate.Session; public class Foo { public Session acquireSession() { // All DB opening, connection …
Przygotowuję się do utworzenia ogólnej klasy EventArgs dla argumentów zdarzeń, które zawierają pojedynczy argument: public class EventArg<T> : EventArgs { // Property variable private readonly T p_EventData; // Constructor public EventArg(T data) { p_EventData = data; } // Property for EventArgs argument public T Data { get { return p_EventData; …
Próbuję połączyć kilka podobnych metod w metodę ogólną. Mam kilka metod, które zwracają wartość kwerendy lub null, jeśli ten obiekt kwerendy nie istnieje lub ma nieprawidłowy format. Byłoby to wystarczająco łatwe, gdyby wszystkie typy natywnie dopuszczały wartość null, ale muszę użyć typu ogólnego dopuszczającego wartość null dla liczb całkowitych i …
Przeczytałem książkę O'Reilly, dzięki której poznałem zasadę wstępu . Użyj extendssymbolu wieloznacznego, gdy otrzymujesz wartości tylko ze struktury. Użyj supersymbolu wieloznacznego, gdy umieszczasz tylko wartości w strukturze. I nie używaj symbolu wieloznacznego, gdy oboje chcecie pobrać i wstawić z / do struktury. Wyjątki to: Nie możesz umieścić niczego w typie …
Mam metodę, która używa IList<T>parametru jako parametru. Muszę sprawdzić, jaki jest typ tego Tobiektu i zrobić coś na jego podstawie. Próbowałem użyć Twartości, ale kompilator na to nie pozwala. Moje rozwiązanie jest następujące: private static string BuildClause<T>(IList<T> clause) { if (clause.Count > 0) { if (clause[0] is int || clause[0] …
Ostatnio czytałem ten artykuł: http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html Moje pytanie brzmi, zamiast tworzyć taką metodę: public void drawAll(List<? extends Shape> shapes){ for (Shape s: shapes) { s.draw(this); } } Mogę utworzyć taką metodę i działa dobrze: public <T extends Shape> void drawAll(List<T> shapes){ for (Shape s: shapes) { s.draw(this); } } Który sposób …
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.