问题标签 [reification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 转换为在运行时确定的类
我有一个方法fetchObjects(String)
可以返回一个Contract
业务对象数组。className
参数告诉我应该返回什么样的业务对象(当然这在这种解释的情况下没有意义,因为我已经说过我会返回s Contract
,但这基本上是我在真实场景中的情况)。因此,我从某处获取条目集并加载集合条目的类(其类型由 指定className
)。
现在我需要构造要返回的数组,所以我使用Set
'stoArray(T[])
方法。使用反射,我为自己构建了一个空的 Contracts 数组。但是,这给了我一个静态类型的值Object
!所以接下来我需要将它转换为适当的类型,在这种情况下是Contract[]
(参见下面清单中的“星号下划线”部分)。
我的问题是:有没有办法以及如何Contract[]
像我在清单中那样转换,但只能通过(或)确定数组元素()的类型Contract
className
entriesType
?换句话说,我想做的基本上是这样的:(entriesType[]) valueWithStaticTypeObject
,其中 entriesType 被通过classname
参数指定的类替换,即Contract
。
这在某种程度上是不可能的,还是可以以某种方式完成?也许使用泛型?
谢谢。
更新:
toArray
使用来自CodeIdol的类型安全方法,我更新了我的fetchObjects
方法:
我需要做什么才能摆脱评论中引用的编译器错误?我是否必须Set<Contract>
在我的方法的返回类型中指定getEntrySet
才能使它起作用?感谢您的任何指示。
database - 版本化的 RDF 存储
让我试着改写一下:
我正在寻找具有以下功能的强大 RDF 存储或库:
- 命名图,或某种其他形式的具体化。
- 版本跟踪(可能在命名图级别)。
- 用户组之间的隐私,无论是命名图还是三重级别。
- 人类可读的数据输入和输出,例如TriG解析器和序列化器。
前段时间我和Jena、Sesame、Boca、RDFLib、Redland和其他一两个人一起玩过,但每个人都有自己的问题。最近在上述方面有什么改善吗?其他任何事情都可以做我想做的事,还是 RDF 还没有准备好迎接黄金时段?
更多地阅读这个主题,我发现:
- 耶拿,没有别的了
- 芝麻,没有别的了
- Boca似乎不再被维护,而且似乎只是真正为 DB2 设计的。OpenAnzo是一个开源分支,看起来更有希望。
- RDFLib,仅此而已
- 雷德兰,没有别的了
- Talis 平台似乎支持变更集(维基页面和Kniblet 教程第 5 部分中的参考),但它是仅托管服务。不过还是可以调查一下。
- SemVersion听起来很有希望,但似乎已经过时了。
java - 什么是具体泛型?它们如何解决类型擦除问题,为什么不进行重大更改就不能添加它们?
我已经阅读了Neal Gafter关于这个主题的博客,但在很多方面仍然不清楚。
鉴于 Java、JVM 和现有集合 API 的当前状态,为什么不能创建保留类型信息的集合 API 实现?这些难道不能以保留向后兼容性的方式替换 Java 未来版本中的现有实现吗?
举个例子:
REIList 是这样的:
这些方法使用 Object o 和 Class 类来获取类型信息。
为什么保留通用类信息需要更改语言而不仅仅是 JVM 实现更改?
我不明白什么?
rdf - RDF 中具体化的简单示例
谁能给我一个在 RDF 中具体化的简单例子?我想看看我是否理解正确。
例如,我提出以下案例
无论有没有具体化,你将如何编写它(即作为一个不需要具体化的简单 RDF 语句)?
java - 我为什么要关心 Java 没有具体化的泛型?
这是我最近在一次采访中提出的一个问题,作为候选人希望看到添加到 Java 语言中的东西。Java 没有具体化泛型通常被认为是一种痛苦,但是当被推动时,候选人实际上无法告诉我如果他们在那里他可以实现什么样的事情。
显然,因为 Java 中允许使用原始类型(以及不安全检查),所以有可能颠覆泛型并最终得到一个List<Integer>
(例如)实际上包含String
s 的类型。如果类型信息被具体化,这显然是不可能的;但肯定不止这些!
人们是否可以发布他们真正想做的事情的示例,是否可以使用具体化的泛型?我的意思是,显然你可以List
在运行时获得 a 的类型——但你会用它做什么呢?
编辑:对此的快速更新,因为答案似乎主要关注需要传入 aClass
作为参数(例如EnumSet.noneOf(TimeUnit.class)
)。我一直在寻找更多不可能的东西。例如:
java - 关于 Java 中的具体化泛型有什么说法吗?
我知道这个问题可能会引发比具体答案更多的讨论(我知道这不是可取的)。但是随着 Oracle 最近的收购,我想知道是否有任何消息说 Java 可能(有朝一日)会得到具体化的泛型?我听说甲骨文想给 Java 一点动力,我想不出更好的办法。
c# - C# 泛型如何影响具有基元的集合
据我了解,C#/.Net 泛型支持某种程度的具体化。所以,如果我有以下代码:
值 1 会被自动装箱还是“列表”对象会有效地处理原始整数?
generics - Scala:泛型类型的方法重载
在 C# 中,我可以重载泛型类型的方法,如下例所示:
但是,如果我尝试在 Scala 中做同样的事情,它会引发一个编译时错误,List[Int]
并且List[Double]
由于擦除而擦除到相同的类型。我听说 Scala 的Manifest
s 可以用来解决这个问题,但我不知道如何。我在文档中也没有发现任何有用的东西。
所以我的问题是:我如何使用Manifest
s (或其他任何有效的方法)来重载由于擦除而擦除为相同类型的泛型类型的方法?
rdf - 隐式具体化的简单格式
是否有任何 RDF 序列化格式(如Notation 3)支持隐式具体化以便轻松表示关于语句的语句?
例如,假设我有声明“玛丽买了房子”,我将在 N3 中表示如下:
现在假设我想添加有关此语句的元语句,例如“我从 Rob 那里听说的”。
直观地说,我希望能够通过编写如下内容来表示这一点:
但是,我认为这将在 N3 中“正式”表示的方式类似于:
这显然更复杂,更难阅读。如果我需要对关于陈述的陈述进行陈述,情况就会变得更加复杂。例如“我从 Rob 那里听到这个消息,而 Rob 正走在街上”。
以 RDF 序列化格式表示它的正确和最简单的方法是什么?
haskell - 在(功能?)编程的上下文中,“reify”和“reification”是什么意思?
我在有关 haskell 和函数式编程的博客(特别是sigfpe 的博客)中阅读了很多这个术语,但我不知道它的含义。大多数时候我都不知道它,但如果我知道的话,我可能会更好地理解这些文本。谷歌没有帮助我。我迷失在技术方面。
此外,世界的非技术意义(“将抽象具体化”)并不能帮助我理解在代码中具体化某些东西实际上意味着什么。
我对计算机科学概念有点慢,所以带有代码的实际示例会很好。:P