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

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



4
Что означает тильда в угловых скобках при создании универсального класса Java?
Я читал несколько примеров JMockit и нашел этот код: final List<OrderItem> actualItems = new ArrayList<~>(); Что означает тильда в универсальном идентификаторе? Я знаю, что это унарный побитовый оператор НЕ, но я не вижу здесь операнда. Также я попытался скомпилировать его и получил ошибку. Я что-то упускаю?

8
Дженерики Java T vs Object
Мне было интересно, в чем разница между следующими двумя объявлениями методов: public Object doSomething(Object obj) {....} public <T> T doSomething(T t) {....} Есть ли что-то, что вы можете сделать с одним, но не с другим? Я не мог найти этот вопрос где-либо еще на этом сайте.
127 java  generics 


5
Почему в Go нет дженериков?
Отказ от ответственности: я играл в Go всего один день, так что есть хороший шанс, что я многое пропустил. Кто-нибудь знает, почему в Go нет реальной поддержки generics / templates / whatsInAName? Итак, есть общий map, но он предоставляется компилятором, а программист на Go не может написать свою собственную реализацию. …

5
Соглашение об именах параметров универсального типа для Java (с несколькими символами)?
В некоторых интерфейсах, которые я написал, я хотел бы называть параметры универсального типа более чем одним символом, чтобы сделать код более читабельным. Что-то вроде.... Map<Key,Value> Вместо этого... Map<K,V> Но когда дело доходит до методов, параметры типа выглядят как java-классы, что тоже сбивает с толку. public void put(Key key, Value value) …

6
Как реализовать IEnumerable <T>
Я знаю, как реализовать не общий IEnumerable, например: using System; using System.Collections; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { MyObjects myObjects = new MyObjects(); myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 }; myObjects[1] = new MyObject() { Foo = "World", Bar = …
124 c#  .net  generics 

2
Что означает «Протокол… может использоваться только как общее ограничение, потому что он имеет требования типа Self или связанные с ним»?
Я пытаюсь создать словарь (на самом деле HashSet ) с ключом для настраиваемого протокола в Swift, но он дает мне ошибку в заголовке: Протокол myProtocol может использоваться только в качестве общего ограничения, поскольку он имеет требования типа Self или связанные с ним. и я не могу понять это. protocol Observing: …

8
Когда использовать общие методы, а когда использовать подстановочные знаки?
Я читаю об общих методах из OracleDocGenericMethod . Меня очень смущает сравнение, когда в нем говорится, когда использовать подстановочные знаки, а когда - общие методы. Цитата из документа. interface Collection&lt;E&gt; { public boolean containsAll(Collection&lt;?&gt; c); public boolean addAll(Collection&lt;? extends E&gt; c); } Вместо этого мы могли бы использовать общие методы: …
122 java  generics  wildcard 

5
Использование поля объекта в качестве универсального ключа словаря
Если я хочу использовать объекты в качестве ключей для a Dictionary, какие методы мне нужно будет переопределить, чтобы они сравнивались определенным образом? Скажем, у меня есть класс со свойствами: class Foo { public string Name { get; set; } public int FooID { get; set; } // elided } И …

6
Возврат «IList» против «ICollection» против «Collection»
Я не понимаю, какой тип коллекции я должен возвращать из моих общедоступных методов и свойств API. Я имею в виду коллекции IList, ICollectionи Collection. Всегда ли предпочтительнее возвращать один из этих типов по сравнению с другими или это зависит от конкретной ситуации?
120 c#  .net  generics  collections 

11
Почему я не могу использовать значение с плавающей запятой в качестве параметра шаблона?
Когда я пытаюсь использовать floatв качестве параметра шаблона, компилятор требует этого кода, пока intработает нормально. Это потому, что я не могу использовать floatв качестве параметра шаблона? #include&lt;iostream&gt; using namespace std; template &lt;class T, T defaultValue&gt; class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() …

4
Наследовать от универсального базового класса, применить ограничение и реализовать интерфейс на C #
Это вопрос синтаксиса. У меня есть общий класс, который наследуется от универсального базового класса и применяет ограничение к одному из параметров типа. Я также хочу, чтобы производный класс реализовал интерфейс. Да хоть убей, я не могу понять правильный синтаксис. Вот что у меня есть: DerivedFoo&lt;T1,T2&gt; : ParentFoo&lt;T1, T2&gt; where T2 …

6
Что мне возвращать, если возвращаемый тип метода - Void? (Не недействительно!)
Из-за использования Generics в Java мне пришлось реализовать функцию с Voidвозвращаемым типом: public Void doSomething() { //... } и компилятор требует, чтобы я что-то вернул . Сейчас я просто возвращаюсь null, но мне интересно, хорошая ли это практика кодирования ... Я спрашиваю о V OID, а не v подъязычная. Класс …
115 java  generics  void 

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