Вопросы по теме 'type-erasure'
Дженерики Java и стирание типов
Учитывая следующий код:
public void example(Object o) {
if(o instanceof List<MyType>)
//do something
}
Я понимаю, что это невозможно (и почему это невозможно), учитывая то, как Java обрабатывает обобщенные типы и стирание типов....
923 просмотров
schedule
26.04.2024
Стирание типов и перегрузка в Java: почему это работает?
У меня такой код:
public class Pair< T, U > {
public T first;
public U second;
}
public class Test {
public int method( Pair< Integer, Integer > pair ) {
return 0;
}
public double method( Pair< Double,...
2222 просмотров
schedule
12.06.2022
Как Spring может получить информацию об общем типе во время выполнения в отношении строго типизированной коллекции?
Я прочитал ниже в документе Spring 3.0:
Строгая типизированная коллекция (только Java 5+)
В Java 5 и более поздних версиях можно использовать строго типизированные коллекции (используя универсальные типы). То есть можно объявить тип...
1678 просмотров
schedule
25.09.2023
Метод имеет (неожиданно) такое же стирание, что и другой метод
Я прочитал все другие вопросы по этому поводу, но не могу понять, почему в моем случае происходит стирание типа. у меня есть
public <T extends Aclass&Binterface> boolean test(final T param) {
...
}
public boolean test(final Aclass...
1330 просмотров
schedule
05.05.2022
Haskell стирает типы?
Стирает ли Haskell типы, и если да, то чем это похоже/не похоже на стирание типов, происходящее в Java?
1986 просмотров
schedule
24.10.2023
Как использовать сопоставление с образцом с параметризованными признаками?
У меня проблемы с чертами Scala и стиранием типов. У меня есть эта черта:
trait Meta[T] {
def ~=(e: T): Boolean
}
Теперь я хочу использовать сопоставление с образцом для проверки этого случая:
(m,i) match {
case (x:Meta[T], y: T) if x...
1102 просмотров
schedule
19.02.2023
Scala: перекрестное (декартово) произведение с несколькими источниками и разнородными типами
Я пытаюсь построить несколько перекрестных произведений обходов разных (но каждый однородных) типов. Желаемый возвращаемый тип — это обход кортежа с типом, соответствующим типам во входных обходах. Например:
List(1, 2, 3) cross Seq("a", "b")...
1128 просмотров
schedule
17.06.2023
Обобщения Java JComboBox
недавно я немного больше читал о Java Generics и пришел к этой статье: http://gafter.blogspot.nl/2004/09/puzzling-through-erasure-answer.html , в котором говорится, что Java всегда будет обратно совместима.
Итак, что Java сделала с JComboBox? Код...
892 просмотров
schedule
28.12.2022
C++: Виртуальный шаблон типа Erasure Обходной путь
Я использую шаблон проектирования стирания типа, чтобы предоставить независимый от шаблона интерфейс для одного из моих классов шаблонов. Однако я столкнулся с проблемой, что один из методов, которые я хочу раскрыть, который объединяет два экземпляра...
540 просмотров
schedule
08.09.2023
Невозможно воспроизвести результат примера Type Erasure
Я читаю раздел 8.4 "Java Generics and Collections". Автор определяет следующий код, пытаясь объяснить двоичную совместимость:
interface Name extends Comparable {
public int compareTo(Object o);
}
class SimpleName implements Name {
private...
113 просмотров
schedule
12.02.2023
Обобщения и стирание типов
Может ли кто-нибудь объяснить мне, почему это происходит:
public class Array<E> {
public E[] elements = (E[]) new Object[10];
public E get(int idx) {
return elements[idx]; // Ignore bound-checking for brevity.
}...
140 просмотров
schedule
26.12.2023
Generics - вывод типа и стирание типа
Этот код, скомпилированный с помощью Java SE-1.7, дает следующий результат (ниже). Я понимаю, предполагаемый тип значения должен быть Object, как получается, что распознаются строковые и целые типы?
public class Generics1 {
public class...
63 просмотров
schedule
16.05.2023
Разница в совпадении шаблонов scala между массивом и списком
У меня есть следующие утверждения.
val a: Any = Array("1", "2", "3")
a match {
case p: Array[Int] => println("int")
case l: Array[String] => println("string")
}
val b: Any = List(1, 2, 3)
b match {
case l: List[String] =>...
295 просмотров
schedule
06.05.2022
Работа с Type Erasure с помощью foldLeft
У меня есть список, содержащий смесь строк и карт, listOfIds . Код ниже пытается получить этот список. Сопоставляется с совпадающими, а строки — с несовпадающими.
val (matched, unmatched) =
listOfIds.foldLeft(List.empty[Map[String, String]],...
55 просмотров
schedule
13.07.2023
Стирание типа Java для членов необработанных типов
Мне любопытно, какие конкретные правила стирания типа Java вызывают следующее:
import java.util.function.Supplier;
public class TypeCheckerWeirdness {
public static class Meow<S extends Meow> {
public Supplier<Boolean>...
25 просмотров
schedule
13.06.2022
Сохранение аргументов типа в Akka receive
На этот вопрос как бы ответил Роланд Кун в этом post , однако, несмотря на несколько комментариев с просьбами о деталях, он не удосужился поделиться полным ответом.
Вот что я хочу сделать: у меня есть класс-оболочка case class Event[T](t: T) ,...
106 просмотров
schedule
12.03.2023
Общая итерация между коллекциями
Итак, у меня есть либо словарь, либо массив, и вместо того, чтобы проверять null для любого из них, а затем перечислять их отдельно, используя свою собственную логику, я пытаюсь найти общее решение, которое независимо от типа коллекции выполняет...
322 просмотров
schedule
13.09.2023
почему я вижу, что абстрактный тип T в шаблоне типа не отмечен, поскольку он устраняется путем стирания, хотя у меня есть теги типа и класса
У меня есть код, который извлекает значения из карты, которую я назвал псевдонимом:
type CsvRow = Map[String, Any]
и класс экстракции:
class CsvExtractor(row: CsvRow) extends Extractor {
def get[T: TypeTag: ClassTag](k: String): T =...
754 просмотров
schedule
25.07.2022
C++ виртуальная шаблонная функция
Понятно, что функции не могут быть одновременно шаблонными и виртуальными. Но может быть очень умный шаблон проектирования, который подойдет.
Моя цель - иметь функцию, которая выглядит так:
void configure(const Configuration &config){...
533 просмотров
schedule
05.05.2024
Тип стирания не работает
Согласно этому руководству по дженерикам :
В процессе стирания типа компилятор Java стирает все параметры типа и заменяет каждый его первой границей, если параметр типа ограничен, или Object, если параметр типа не ограничен.
Я взял тот же...
32 просмотров
schedule
27.04.2022