Вопросы с тегом «generics»

167
Как конвертировать int [] в Integer [] в Java?

Я новичок в Java и очень смущен. У меня большой набор данных длиной 4 int[] и я хочу подсчитать, сколько раз встречается каждая конкретная комбинация из 4 целых чисел. Это очень похоже на подсчет частот слов в документе. Я хочу создать Map<int[], double> который отображает каждое значение int...

167
Func <T> без параметра

Могу ли я передать метод с параметром out как Func? public IList<Foo> FindForBar(string bar, out int count) { } // somewhere else public IList<T> Find(Func<string, int, List<T>> listFunction) { } Для Func нужен тип, поэтому out не будет компилироваться, а для вызова...

166
Как сделать тип возвращаемого значения для метода универсальным?

Есть ли способ сделать этот метод универсальным, чтобы я мог вернуть строку, bool, int или double? Прямо сейчас он возвращает строку, но если он может найти «true» или «false» в качестве значения конфигурации, я хотел бы, например, вернуть bool. public static string ConfigSetting(string...

164
Как я могу использовать интерфейс как ограничение общего типа C #?

Есть ли способ получить следующее объявление функции? public bool Foo<T>() where T : interface; то есть. где T - тип интерфейса (аналогично where T : class, и struct). В настоящее время я согласился на: public bool Foo<T>() where T : IBase; Где IBase определяется как пустой интерфейс,...

164
Как сделать класс Java, который реализует один интерфейс с двумя универсальными типами?

У меня общий интерфейс public interface Consumer<E> { public void consume(E e); } У меня есть класс, который использует два типа объектов, поэтому я хотел бы сделать что-то вроде: public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple> { public void...

163
Что такое овеществление?

Я знаю, что Java реализует параметрический полиморфизм (Generics) с стиранием. Я понимаю, что такое стирание. Я знаю, что C # реализует параметрический полиморфизм с овеществлением. Я знаю, что может заставить тебя написать public void dosomething(List<String> input) {} public void...

161
Джексон - десериализация с использованием универсального класса

У меня есть строка json, которую я должен де-сериализовать до следующего класса class Data <T> { int found; Class<T> hits } Как мне это сделать? Это обычный способ mapper.readValue(jsonString, Data.class); Но как я могу сказать, что означает T?...

160
Почему массивы ковариантны, а дженерики инвариантны?

От эффективной Явы Джошуа Блох, Массивы отличаются от универсального типа двумя важными способами. Первые массивы ковариантны. Обобщения являются инвариантами. Ковариант просто означает, что если X является подтипом Y, то X [] также будет подтипом Y []. Массивы являются ковариантными, так как...

159
C # Создать новый T ()

Вы можете увидеть, что я пытаюсь (но не могу) сделать с помощью следующего кода: protected T GetObject() { return new T(); } Любая помощь будет принята с благодарностью. РЕДАКТИРОВАТЬ: Контекст был следующим. Я играл с пользовательским классом контроллеров для всех контроллеров, используя...

155
Как я могу добавить в список <? расширяет число> структур данных?

У меня есть список, который объявлен так: List<? extends Number> foo3 = new ArrayList<Integer>(); Я пытался добавить 3 к foo3. Однако я получаю сообщение об ошибке, подобное этому: The method add(capture#1-of ? extends Number) in the type List<capture#1-of ? extends Number> is not...

155
Общий список - перемещение элемента в списке

Итак, у меня есть общий список, а также oldIndexи newIndexзначение. Я хочу переместить элемент в oldIndex, чтобы newIndex... как можно проще. Какие-либо предложения? Заметка Предмет должен находиться между предметами до(newIndex - 1) и newIndex до его...

154
Проблема типа Nullable с?: Условный оператор

Может кто-нибудь объяснить, почему это работает в C # .NET 2.0: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ... но это не так: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); Последняя форма дает мне ошибку компиляции: «Тип условного выражения...

153
C # - несколько универсальных типов в одном списке

Это, вероятно, не возможно, но у меня есть этот класс: public class Metadata<DataType> where DataType : struct { private DataType mDataType; } Это еще не все, но давайте будем простыми. Универсальный тип (DataType) ограничен типами значений оператором where. То, что я хочу сделать, это иметь...

153
Можно ли решить, что предупреждение компилятора «Общий массив T создан для параметра varargs»?

Это упрощенная версия рассматриваемого кода, один универсальный класс использует другой класс с параметрами универсального типа и должен передать один из универсальных типов в метод с параметрами varargs: class Assembler<X, Y> { void assemble(X container, Y... args) { ... } } class...

151
Java Enum определение

Мне показалось, что я достаточно хорошо понимаю дженерики Java, но потом я наткнулся на следующее в java.lang.Enum: class Enum<E extends Enum<E>> Может кто-нибудь объяснить, как интерпретировать этот параметр типа? Бонусные баллы за предоставление других примеров использования...

150
Создайте новый объект из параметра типа в универсальном классе

Я пытаюсь создать новый объект параметра типа в моем универсальном классе. В моем классе у Viewменя есть 2 списка объектов универсального типа, переданных в качестве параметров типа, но когда я пытаюсь создать new TGridView(), TypeScript говорит: Не удалось найти символ TGridView Это код: module...

150
Эквивалент Java Map в C #

Я пытаюсь сохранить список предметов в коллекции с ключом на мой выбор. В Java я бы просто использовал Map следующим образом: class Test { Map<Integer,String> entities; public String getEntity(Integer code) { return this.entities.get(code); } } Есть ли эквивалентный способ сделать это в C #?...

148
Почему литералы перечисления Java не должны иметь параметров общего типа?

Перечисления Java великолепны. Как и дженерики. Конечно, мы все знаем ограничения последнего из-за стирания типа. Но есть одна вещь, которую я не понимаю: почему я не могу создать перечисление вот так: public enum MyEnum<T> { LITERAL1<String>, LITERAL2<Integer>,...