Публикации по теме '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 просмотров
schedule
31.12.2023
По какой причине я не могу создавать универсальные типы массивов в 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 просмотров
schedule
15.07.2023
Может ли 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 просмотров
schedule
20.05.2022
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 просмотров
schedule
05.07.2023
Затраты памяти на классы Case в scala
Каковы накладные расходы памяти класса case в scala?
Я реализовал некоторый код для хранения лексикона с несколькими типами интернированных токенов для обработки NLP. У меня есть класс case для каждого типа токена.
Например, канонический токен...
2080 просмотров
schedule
27.09.2022
Разъяснение по поводу выступления Шона Пэрента. Наследование — это базовый класс зла.
Выступление Шона Пэрента, Наследование — это базовый класс of evil , говорит, что полиморфизм — это не свойство типа, а скорее свойство того, как он используется. Как правило, не используйте наследование для реализации интерфейсов. Среди многих...
6294 просмотров
schedule
26.04.2022
Сопоставление с образцом и (стертый) аргумент универсального типа функции
Допустим, я хочу написать универсальную функцию foo , которая будет использовать сопоставление с образцом, чтобы проверять, относится ли переданный аргумент к типу его универсального аргумента T .
Наивная попытка:
def foo[T]:...
162 просмотров
schedule
21.03.2024
Разница между instanceof List и instanceof List‹?›
Я знаю, что мы не можем вызывать instanceof List<E> , потому что List<E> не является реализуемым типом. И instanceof List , и instanceof List<?> работают; однако IDE eclipse предлагает использовать instanceof List<?> ....
1154 просмотров
schedule
14.12.2022
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