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

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


7
Что такое «особый класс»?
После неудачной попытки скомпилировать что-то вроде следующего: public class Gen<T> where T : System.Array { } с ошибкой Ограничение не может быть специальным классом System.Array. Я начал задаваться вопросом , что именно это «особый класс»? Кажется, что люди часто получают такую ​​же ошибку, когда задают System.Enumобщее ограничение. Я получил те …

5
возврат объекта Void
Как правильно вернуть Voidтип, если он не является примитивом? Например. В настоящее время я использую null, как показано ниже. interface B<E>{ E method(); } class A implements B<Void>{ public Void method(){ // do something return null; } }

2
Общий C # «где ограничение» с определением «любого универсального типа»?
Приведу пример: У меня есть определение общего класса / интерфейса: interface IGenericCar< T > {...} У меня есть другой класс / интерфейс, который я хочу связать с классом выше, например: interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...} По сути, я хочу, чтобы мой общий …

2
Java отключена: снято флажок создания универсального массива для параметра varargs
Я установил Netbeans для отображения непроверенных предупреждений в моем коде Java, но я не могу понять ошибку в следующих строках: private List<String> cocNumbers; private List<String> vatNumbers; private List<String> ibans; private List<String> banks; ... List<List<String>> combinations = Utils.createCombinations(cocNumbers, vatNumbers, ibans); дает: [unchecked] unchecked generic array creation for varargs parameter of type …

14
Как инициализировать List <T> заданным размером (в отличие от емкости)?
.NET предлагает общий контейнер списков, производительность которого практически идентична (см. Вопрос «Производительность массивов и списков»). Однако они совершенно разные по инициализации. Массивы очень легко инициализировать со значением по умолчанию, и по определению они уже имеют определенный размер: string[] Ar = new string[10]; Это позволяет безопасно назначать случайные элементы, например: Ar[5]="hello"; …

4
Лямбда-выражение и общий метод
Предположим, у меня есть общий интерфейс: interface MyComparable&lt;T extends Comparable&lt;T&gt;&gt; { public int compare(T obj1, T obj2); } И способ sort: public static &lt;T extends Comparable&lt;T&gt;&gt; void sort(List&lt;T&gt; list, MyComparable&lt;T&gt; comp) { // sort the list } Я могу вызвать этот метод и передать лямбда-выражение в качестве аргумента: List&lt;String&gt; list …
111 java  generics  lambda  java-8 

7
Ограничение универсального типа C # для всего, допускающего значение NULL
Итак, у меня есть этот класс: public class Foo&lt;T&gt; where T : ??? { private T item; public bool IsNull() { return item == null; } } Теперь я ищу ограничение типа, которое позволяет мне использовать в качестве параметра типа все, что может быть null. Это означает все ссылочные типы, …
111 c#  generics  nullable 

1
В чем разница между '&' и ',' в дженериках Java?
Читая официальный учебник Java по дженерикам, я обнаружил, что вы можете ограничить аргумент типа (в данном случае T), чтобы расширить класс и / или несколько интерфейсов с помощью оператора 'and' ( &amp;) следующим образом: &lt;T extends MyClass &amp; Serializable&gt; Я заменил &amp;с ,(по ошибке и по- прежнему работает, с предупреждением …
110 java  generics 


5
Kotlin: Как работать с приведением списков: Не отмечено Приведение: kotlin.collections.List <Kotlin.Any?> В ​​kotlin.colletions.List <Waypoint>
Я хочу написать функцию, которая возвращает каждый элемент в a, Listкоторый не является первым или последним элементом (промежуточной точкой). Функция получает в List&lt;*&gt;качестве входных данных общий . Результат должен быть возвращен только в том случае, если элементы списка относятся к типу Waypoint: fun getViaPoints(list: List&lt;*&gt;): List&lt;Waypoint&gt;? { list.forEach { if(it …
109 list  generics  casting  kotlin 


8
Java Class.cast () против оператора приведения
Когда я учился на C ++ о пороках оператора приведения в стиле C, я сначала был рад обнаружить, что в Java 5 java.lang.Classесть castметод. Я подумал, что наконец-то у нас появился ОО-подход к кастингу. Оказывается, Class.castэто не то же самое, что static_castв C ++. Это больше похоже reinterpret_cast. Он не …

3
Джексон и ссылка на универсальный тип
Я хочу использовать библиотеку jackson json для общего метода следующим образом: public MyRequest&lt;T&gt; tester() { TypeReference&lt;MyWrapper&lt;T&gt;&gt; typeRef = new TypeReference&lt;MyWrapper&lt;T&gt;&gt;(); MyWrapper&lt;T&gt; requestWrapper = (MyWrapper&lt;T&gt;) JsonConverter.fromJson(jsonRequest, typeRef); return requestWrapper.getRequest(); } ... public class MyWrapper&lt;T&gt; { private MyRequest&lt;T&gt; request; public MyRequest&lt;T&gt; getRequest() { return request; } public void setRequest(MyRequest&lt;T&gt; request) { this.request …
107 java  json  generics  jackson 

2
Разница между «*» и «Any» в дженериках Kotlin
Я не уверен, что полностью понимаю разницу между SomeGeneric&lt;*&gt;и SomeGeneric&lt;Any&gt;. Я думаю, что *представляет собой что-либо (подстановочный знак) и Anyпредставляет объект, от которого наследуются ВСЕ объекты. Кажется, они должны быть такими же, но так ли?
107 generics  kotlin 

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