Публикации по теме 'type-erasure'


Как использовать Type Erasure для улучшения абстракции модели
OkCupid набирает сотрудников для iOS Нажмите здесь, чтобы узнать больше Введение Здесь, в OkCupid, мы постоянно стремимся внедрять лучшие в своем классе методы Swift. Одним из таких понятий является стирание типа. Вы можете подумать про себя: Мне никогда в жизни не приходилось использовать стирание шрифта… , но вы ошибаетесь! Мало ли вы знали, что на самом деле это протокол, который стирает конкретный тип любого объекта . Возможно, вы даже видели префикс Any ,..

Вопросы по теме 'type-erasure'

Класс является необработанным типом. Ссылки на общий тип Class‹T› должны быть параметризованы
У меня есть следующий класс (из простого учебника Spring) public class CarValidator implements Validator { public boolean supports(Class aClass) { return Car.class.equals(aClass); } public void validate(Object obj, Errors...
66062 просмотров

По какой причине я не могу создавать универсальные типы массивов в Java?
В чем причина того, что Java не позволяет нам делать private T[] elements = new T[initialCapacity]; Я мог понять, что .NET не позволяет нам это делать, так как в .NET у вас есть типы значений, которые во время выполнения могут иметь разные...
186907 просмотров
schedule 17.11.2023

странное поведение вокруг той же ошибки компиляции стирания
Недавно я наткнулся на фрагмент кода, который не компилировался в моем Eclipse из-за проблемы с "одним и тем же стиранием" (выглядел очень похоже на этот ). Ребята, написавшие код, заверили меня, что он компилируется в их локальной среде и их...
3781 просмотров
schedule 20.11.2023

доступ к информации о параметризованном типе во время выполнения
Возможный дубликат: Почему не вся информация о типах стирается в Java во время выполнения? Дженерики Java реализуются посредством стирания типов, поэтому я думал, что невозможно получить какую-либо информацию о параметризованном типе во...
4967 просмотров
schedule 19.09.2022

Введите стирание в C++: как работают boost::shared_ptr и boost::function?
Тип стирания - это как вы это называете? Как boost::shared_ptr хранит свой объект удаления и как boost::function хранит свой функциональный объект? Есть ли какой-нибудь учебник, который учит трюку? Какова стоимость во время выполнения...
3344 просмотров
schedule 22.09.2022

Когда именно происходит стирание типа?
Синтаксис scala очень многообещающий. Я думал, что изначально scala - это больше, чем просто удобная java, и может ввести совершенно новую парадигму программирования, но многие функции, допускаемые синтаксисом, неверны с точки зрения семантики....
253 просмотров
schedule 16.08.2023

Почему механизм вывода типов Scala терпит неудачу с этим набором неявных аргументов, включающих параметризованные типы?
Я хотел бы определить метод, параметризованный типом T , поведение которого зависит от того, какой неявный аргумент можно найти для типа Box[T] . В следующем коде этот метод определен как foo . При вызове с foo[Int] или foo[String] он без...
155 просмотров

Может ли DataNucleus сохранить абстрактный базовый класс, параметризованный с помощью Generics?
Используя DataNucleus, я был счастлив использовать абстрактный базовый класс для предоставления «длинного» идентификатора подклассам (обратите внимание на примитивный тип). При адаптации примера из JPA мне пришла в голову идея параметризовать...
573 просмотров
schedule 01.11.2022

Использование Type-Erasure для создания запросов type_traits во время выполнения
Можно ли вообще использовать Type Erasure для создания объектов, которые инкапсулируют произвольный тип (назовем его ErasedType ), и к которым можно запросить во время выполнения, чтобы определить, можно ли преобразовать другой произвольный тип T в...
346 просмотров
schedule 06.07.2023

Предупреждение о стирании Scala Stream
Может ли кто-нибудь объяснить, почему это дает предупреждение об удалении? def optionStreamHead(x: Any) = x match { case head #:: _ => Some(head) case _ => None } Дает: warning: non variable type-argument A in type...
506 просмотров
schedule 15.07.2023

Приведение пустых значений более высокого типа, чтобы избежать создания экземпляров
Я поймал себя на том, что смотрю отрывок из записи Scalawags#2, а затем идет эта часть о стирании шрифта и Дике Уолле, указывающем, что отражение в конце концов укусит вас за ноги. Итак, я подумал о чем-то, что я делаю довольно часто (и я также...
106 просмотров

Java :: получение имен параметризованных типов во время выполнения
Следующий код: public static void main(String args[]) throws NoSuchFieldException { List<Integer> li = new ArrayList<Integer>(); ParameterizedType apType = (ParameterizedType) li.getClass().getGenericSuperclass(); Type[]...
191 просмотров
schedule 30.08.2022

Общий интерфейс против интерфейса для каждого типа
Есть два класса X, Y, которые реализуют базовый интерфейс. Существует интерфейс, который занимается обработкой объектов каждого типа. interface Base { } class X implements Base { } class Y implements Base { } interface XProcessor { void...
241 просмотров

Затраты памяти на классы Case в scala
Каковы накладные расходы памяти класса case в scala? Я реализовал некоторый код для хранения лексикона с несколькими типами интернированных токенов для обработки NLP. У меня есть класс case для каждого типа токена. Например, канонический токен...
2080 просмотров

Разъяснение по поводу выступления Шона Пэрента. Наследование — это базовый класс зла.
Выступление Шона Пэрента, Наследование — это базовый класс of evil , говорит, что полиморфизм — это не свойство типа, а скорее свойство того, как он используется. Как правило, не используйте наследование для реализации интерфейсов. Среди многих...
6294 просмотров
schedule 26.04.2022

Сопоставление с образцом и (стертый) аргумент универсального типа функции
Допустим, я хочу написать универсальную функцию foo , которая будет использовать сопоставление с образцом, чтобы проверять, относится ли переданный аргумент к типу его универсального аргумента T . Наивная попытка: def foo[T]:...
162 просмотров

Разница между instanceof List и instanceof List‹?›
Я знаю, что мы не можем вызывать instanceof List<E> , потому что List<E> не является реализуемым типом. И instanceof List , и instanceof List<?> работают; однако IDE eclipse предлагает использовать instanceof List<?> ....
1154 просмотров

Kotlin NDArray с лямбда-конструктором с универсальным возвращаемым типом
Я пытаюсь создать очень простой общий класс NDArray в Kotlin, который принимает лямбда-выражение в качестве функции инициализации. class NDArray<T>(i: Int, j: Int, f: (Int) -> T) { val values: Array<T> = Array(i * j, f) }...
1373 просмотров
schedule 04.05.2022

Стирание типа Java и массивы
В документе оракула говорится, что дженерики реализованы в java с использованием метода стирания типа вызова, и вот как это работает. Замените все параметры типа в универсальных типах их границами или Object, если параметры типа не ограничены....
1201 просмотров
schedule 28.07.2023

Введите стирание, введите стирание, есть вопросы?
Итак, предположим, что я хочу ввести стирание, используя стирание типа. Я могу создать псевдометоды для вариантов, которые включают естественный: pseudo_method print = [](auto&& self, auto&& os){ os << self; };...
2740 просмотров
schedule 02.08.2023