Jest to mały fragment kodu wzięty z niektórych przykładów towarzyszących parserowi Stanforda. Zajmuję się programowaniem w Javie od około 4 lat, ale nigdy nie bardzo dobrze rozumiałem, co powinien wskazywać ten styl kodu. List<? extends HasWord> wordList = toke.tokenize(); Nie martwię się o szczegóły kodu. To, co mnie dezorientuje, to …
Zagłębiam się w generyczne i teraz mam sytuację, w której potrzebuję pomocy. Otrzymuję błąd kompilacji w poniższej klasie „Derived”, jak pokazano w tytule tematu. Widzę wiele innych postów podobnych do tego, ale nie widzę związku. Czy ktoś może mi powiedzieć, jak to rozwiązać? using System; using System.Collections.Generic; namespace Example { …
Biorąc pod uwagę następujący przykład (użycie JUnit z dopasowaniami Hamcrest): Map<String, Class<? extends Serializable>> expected = null; Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected)); Nie kompiluje się z assertThatsygnaturą metody JUnit : public static <T> void assertThat(T actual, Matcher<T> matcher) Komunikat o błędzie kompilatora to: Error:Error:line (102)cannot find symbol method …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Zamknięte 6 lat temu . Zablokowana . To pytanie i odpowiedzi są zablokowane, ponieważ pytanie jest nie na temat, ale ma znaczenie historyczne. Obecnie nie akceptuje nowych odpowiedzi ani interakcji. Najczęściej używam Javy, a generyczne są stosunkowo …
Podczas pisania dokumentacji XML można użyć <see cref="something">something</see>, co oczywiście działa. Ale w jaki sposób odwołujesz się do klasy lub metody z typami rodzajowymi? public class FancyClass<T> { public string FancyMethod<K>(T value) { return "something fancy"; } } Gdybym miał gdzieś napisać dokumentację XML, jak miałbym odwoływać się do tej …
W Javie chciałbym mieć coś takiego: class Clazz<T> { static void doIt(T object) { // ... } } Ale rozumiem Nie można dokonać statycznego odniesienia do niestatycznego typu T. Nie rozumiem leków generycznych poza podstawowymi zastosowaniami, a zatem nie mam większego sensu. Nie pomaga to, że nie byłem w stanie …
Próbuję utworzyć ogólne rozszerzenie, które używa „TryParse”, aby sprawdzić, czy łańcuch jest danego typu: public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); } to się nie skompiluje, ponieważ nie może rozwiązać symbolu „TryParse” Jak rozumiem, „TryParse” nie jest częścią żadnego interfejsu. Czy to w ogóle …
Jakie są różnice między List, List<?>, List<T>, List<E>, i List<Object>? 1. Lista List: jest typem surowym, dlatego nie typesafe. Wygeneruje błąd czasu wykonywania tylko wtedy, gdy rzutowanie jest złe. Chcemy błędu czasu kompilacji, gdy rzutowanie jest złe. Nie zaleca się używania. 2. Lista <?> List<?>jest nieograniczonym znakiem wieloznacznym. Ale nie …
Powiedzmy, że musisz mieć listę / tablicę liczb całkowitych, które potrzebujesz iterować często, a mam na myśli bardzo często. Przyczyny mogą być różne, ale powiedzmy, że jest to sedno najbardziej wewnętrznej pętli przetwarzania o dużej objętości. Ogólnie rzecz biorąc, można by zdecydować się na korzystanie z list (list) ze względu …
Zazwyczaj widziałem, jak ludzie używają literału klasowego w następujący sposób: Class<Foo> cls = Foo.class; Ale co, jeśli typ jest ogólny, np. Lista? Działa to dobrze, ale ma ostrzeżenie, ponieważ Listę należy sparametryzować: Class<List> cls = List.class Dlaczego więc nie dodać <?>? To powoduje błąd niedopasowania typu: Class<List<?>> cls = List.class …
Jaka jest różnica między <out T>i <T>? Na przykład: public interface IExample<out T> { ... } vs. public interface IExample<T> { ... }
Obecnie używam: DataTable dt = CreateDataTableInSomeWay(); List<DataRow> list = new List<DataRow>(); foreach (DataRow dr in dt.Rows) { list.Add(dr); } Czy istnieje lepszy / magiczny sposób?
Tytuł jest niejasny. Chcę wiedzieć, czy jest to możliwe: string typeName = <read type name from somwhere>; Type myType = Type.GetType(typeName); MyGenericClass<myType> myGenericClass = new MyGenericClass<myType>(); Oczywiście MyGenericClass jest opisany jako: public class MyGenericClass<T> W tej chwili kompilator narzeka, że „Nie można znaleźć typu lub przestrzeni nazw„ myType ”.” Musi …
Poniżej znajduje się fragment pokazujący, jak utworzyć klasę ogólną java, aby dołączyć pojedynczy element do tablicy. Jak mogę uczynić appendToArray metodą statyczną. Dodanie wartości statycznej do podpisu metody powoduje błędy kompilacji. public class ArrayUtils<E> { public E[] appendToArray(E[] array, E item) { E[] result = (E[])new Object[array.length+1]; result[array.length] = item; …
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.