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

Обобщения являются формой параметрического полиморфизма, встречающейся в ряде языков, включая языки .NET, Java, Swift и Rust.

6
Что означает вопросительный знак в параметре типа Java generics?
Это небольшой фрагмент кода, взятый из некоторых примеров, сопровождающих Stanford Parser. Я занимался разработкой на Java около 4 лет, но никогда не имел четкого понимания того, на что должен указывать этот стиль кода. List<? extends HasWord> wordList = toke.tokenize(); Я не беспокоюсь о деталях кода. Что меня смущает, так это …
216 java  generics 

3
Тип должен быть ссылочным типом, чтобы использовать его в качестве параметра 'T' в универсальном типе или методе.
Я углубляюсь в дженерики, и теперь у меня возникла ситуация, в которой мне нужна помощь. Я получаю ошибку компиляции в классе «Производные» ниже, как показано в заголовке темы. Я вижу много других сообщений, похожих на этот, но я не вижу отношений. Может кто-нибудь сказать мне, как решить эту проблему? using …
211 c#  generics 


7
Когда для дженериков Java требуется <? расширяет T> вместо <T> и есть ли недостатки в переключении?
Приведенный ниже пример (с использованием JUnit с сопоставителями Hamcrest): Map&lt;String, Class&lt;? extends Serializable&gt;&gt; expected = null; Map&lt;String, Class&lt;java.util.Date&gt;&gt; result = null; assertThat(result, is(expected)); Это не компилируется с assertThatсигнатурой метода JUnit : public static &lt;T&gt; void assertThat(T actual, Matcher&lt;T&gt; matcher) Сообщение об ошибке компилятора: Error:Error:line (102)cannot find symbol method assertThat(java.util.Map&lt;java.lang.String,java.lang.Class&lt;java.util.Date&gt;&gt;, org.hamcrest.Matcher&lt;java.util.Map&lt;java.lang.String,java.lang.Class …
205 java  generics  junit 

13
Каковы различия между Обобщением в C # и Java… и Шаблонами в C ++? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Закрыто 6 лет назад . Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Я …
203 c#  java  c++  generics  templates 

7
Как ссылаться на общие классы и методы в документации XML
При написании XML-документации вы можете использовать &lt;see cref="something"&gt;something&lt;/see&gt;, что, конечно, работает. Но как вы ссылаетесь на класс или метод с универсальными типами? public class FancyClass&lt;T&gt; { public string FancyMethod&lt;K&gt;(T value) { return "something fancy"; } } Если бы я собирался написать где-нибудь документацию xml, как бы я сослался на причудливый …

11
Статический метод в универсальном классе?
В Java я хотел бы иметь что-то вроде: class Clazz&lt;T&gt; { static void doIt(T object) { // ... } } Но я получаю Невозможно сделать статическую ссылку на нестатический тип T Я не понимаю дженерики за пределами базового использования и поэтому не могу понять этого. Это не помогает, что я …

1
Универсальный TryParse
Я пытаюсь создать универсальное расширение, которое использует TryParse, чтобы проверить, является ли строка данного типа: public static bool Is&lt;T&gt;(this string input) { T notUsed; return T.TryParse(input, out notUsed); } это не скомпилируется, так как не может разрешить символ «TryParse» Как я понимаю, «TryParse» не является частью какого-либо интерфейса. Можно ли …
197 c#  generics  tryparse 

10
Разница между списком, списком <?>, Списком <T>, списком <E> и списком <объект>
Каковы различия между List, List&lt;?&gt;, List&lt;T&gt;, List&lt;E&gt;, и List&lt;Object&gt;? 1. Список List: является необработанным типом, поэтому нет typesafe. Он будет генерировать ошибку времени выполнения только при плохом приведении. Мы хотим, чтобы ошибка времени компиляции была плохой. Не рекомендуется использовать. 2. Список &lt;?&gt; List&lt;?&gt;является неограниченным символом подстановки. Но я не уверен, …
194 java  generics 

8
Java: как получить литерал класса из универсального типа?
Как правило, я видел, как люди используют литерал класса следующим образом: Class&lt;Foo&gt; cls = Foo.class; Но что, если тип является общим, например, List? Это работает нормально, но есть предупреждение, так как список должен быть параметризован: Class&lt;List&gt; cls = List.class Так почему бы не добавить &lt;?&gt;? Ну, это вызывает ошибку несоответствия …
194 java  generics  class  literals 

13
Производительность массивов и списков
Скажем, у вас должен быть список / массив целых чисел, которые вы должны часто повторять, и я имею в виду очень часто. Причины могут быть разными, но говорят, что это сердце самого внутреннего цикла обработки большого объема. В целом, можно использовать списки (List) из-за их гибкости в размере. Кроме того, …

5
<out T> vs <T> в Generics
В чем разница между &lt;out T&gt;и &lt;T&gt;? Например: public interface IExample&lt;out T&gt; { ... } против public interface IExample&lt;T&gt; { ... }
189 c#  generics  covariance 


6
Передайте Instantiated System.Type в качестве параметра типа для универсального класса
Название немного неясно. Я хочу знать, возможно ли это: string typeName = &lt;read type name from somwhere&gt;; Type myType = Type.GetType(typeName); MyGenericClass&lt;myType&gt; myGenericClass = new MyGenericClass&lt;myType&gt;(); Очевидно, MyGenericClass описывается как: public class MyGenericClass&lt;T&gt; В данный момент компилятор жалуется, что «Тип или пространство имен« myType »не может быть найден». Должен быть …
183 c#  .net  generics 

4
Как сделать статический метод Java Generic?
Ниже приведен фрагмент о том, как сделать универсальный класс Java для добавления одного элемента в массив. Как я могу сделать appendToArray статическим методом. Добавление статического в сигнатуру метода приводит к ошибкам компиляции. public class ArrayUtils&lt;E&gt; { public E[] appendToArray(E[] array, E item) { E[] result = (E[])new Object[array.length+1]; result[array.length] = …
173 java  generics 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.