Natrafiam na kod Java w następujący sposób: public interface Foo<E> {} public interface Bar<T> {} public interface Zar<?> {} Jaka jest różnica między wszystkimi trzema powyższymi i jak nazywają ten typ deklaracji klasy lub interfejsu w Javie?
Mam kilka metod, które zwracają różne listy ogólne. Istnieje w .net jakakolwiek metoda statyczna klasy lub cokolwiek, aby przekonwertować dowolną listę na dane? Jedyne, co mogę sobie wyobrazić, to użyć Reflection, aby to zrobić. JEŚLI mam to: List<Whatever> whatever = new List<Whatever>(); (Ten następny kod oczywiście nie działa, ale chciałbym …
Czy jest jakaś praktyczna różnica między a SortedList<TKey,TValue>a a SortedDictionary<TKey,TValue>? Czy są jakieś okoliczności, w których używałbyś jednego, a nie drugiego?
Mam ogólną metodę, która ma dwa ogólne parametry. Próbowałem skompilować poniższy kod, ale to nie działa. Czy jest to ograniczenie .NET? Czy można mieć wiele ograniczeń dla różnych parametrów? public TResponse Call<TResponse, TRequest>(TRequest request) where TRequest : MyClass, TResponse : MyOtherClass
Czytałem A Tour of Scala: Abstract Types . Kiedy lepiej używać typów abstrakcyjnych? Na przykład, abstract class Buffer { type T val element: T } raczej że generyczne, na przykład abstract class Buffer[T] { val element: T }
W tym pytaniu jest dobra dyskusja na temat Generics i tego, co naprawdę robią za kulisami , więc wszyscy wiemy, że Vector<int[]>jest to wektor tablic liczb całkowitych i HashTable<String, Person>tabela, której klucze to ciągi znaków i wartości Person. Jednak to, co mnie zaskakuje, to użycie Class<>. Klasa java Classpowinna również …
Załóżmy na przykład, że masz dwie klasy: public class TestA {} public class TestB extends TestA{} Mam metodę, która zwraca a List<TestA>i chciałbym rzutować wszystkie obiekty z tej listy na, TestBaby skończyć z List<TestB>.
Mam aplikację korzystającą z zarządzanych bibliotek DLL. Jedna z tych bibliotek dll zwraca ogólny słownik: Dictionary<string, int> MyDictionary; Słownik zawiera klawisze z dużymi i małymi literami. Z drugiej strony otrzymuję listę potencjalnych kluczy (ciągów), ale nie mogę zagwarantować sprawy. Próbuję uzyskać wartość w słowniku za pomocą klawiszy. Ale oczywiście nie …
Przeczytałem o usuwaniu typu Java na stronie Oracle . Kiedy następuje usunięcie typu? W czasie kompilacji czy w czasie wykonywania? Kiedy klasa jest załadowana? Kiedy instancja klasy jest tworzona? Wiele stron (w tym oficjalny samouczek wspomniany powyżej) twierdzi, że kasowanie typu występuje podczas kompilacji. Jeśli informacje o typie zostaną całkowicie …
Dlaczego produkty generyczne w Javie działają z klasami, ale nie z typami pierwotnymi? Na przykład działa to dobrze: List<Integer> foo = new ArrayList<Integer>(); ale nie jest to dozwolone: List<int> bar = new ArrayList<int>();
Chcę utworzyć instancję typu określonego przeze mnie w ogólnej metodzie. Ten typ ma wiele przeciążonych konstruktorów. Chciałbym móc przekazywać argumenty konstruktorom, ale Activator.CreateInstance<T>() nie widzi tego jako opcji. Czy jest na to inny sposób?
Mam klasę, której chcę użyć do przechowywania „właściwości” innej klasy. Te właściwości mają po prostu nazwę i wartość. Idealnie, chciałbym móc dodawać właściwości pisane na maszynie , tak aby zwracana „wartość” była zawsze zgodna z typem, jaki chcę. Ten typ powinien zawsze być prymitywny. Ta klasa podklasuje klasę abstrakcyjną, która …
Jeśli BaseFruitma konstruktora, który akceptuje int weight, czy mogę utworzyć egzemplarz owocu za pomocą ogólnej metody takiej jak ta? public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } Przykład został dodany za komentarzami. Wydaje się, że mogę to zrobić tylko wtedy, gdy podam BaseFruitkonstruktor bez …
Mam pętlę foreach, która czyta listę obiektów jednego typu i tworzy listę obiektów innego typu. Powiedziano mi, że wyrażenie lambda może osiągnąć ten sam wynik. var origList = List<OrigType>(); // assume populated var targetList = List<TargetType>(); foreach(OrigType a in origList) { targetList.Add(new TargetType() {SomeValue = a.SomeValue}); } Jakakolwiek pomoc byłaby …
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.