问题标签 [supertype]

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.

0 投票
3 回答
2587 浏览

wpf - 如何创建包含具有公共超类的对象的 F# 列表?

我有两个功能,水平和垂直,用于布置控件。他们是这样工作的:

现在verticalList是一个垂直显示三个文本块的控件:

以下是定义:

当我组合不同类型时出现问题:

这抱怨列表的元素不是同一类型。这是真的,但它们有一个共同的超类型(UIElement)。

我知道我可以使用 :> UIElement 向上转换列表中的两个项目,但这是一个丑陋的解决方案。F# 可以推断出常见的超类型。如果不是,为什么不呢?

如果好看就太好了

不必成为

0 投票
2 回答
1637 浏览

oracle - 具有 Oracle 对象类型创建的子类型超类型。限制子类型的数量?

在 Oracle 10g 中创建继承自超类型的对象类型时,我遇到了问题。我们目前有许多从这个超类型继承的对象类型,最近编译器开始抛出以下错误

ORA-30745: error occured while trying to add column "SYS_NC_ROWINFO$" in table "DATA_CACHE.CACHE_ENTRIES"

ORA-01792: maximum number of columns in a table or view is 1000

您可以从超类型继承的子类型的数量是否有上限?

0 投票
5 回答
15519 浏览

sql-server - 如何将子类型应用到 SQL Server 数据库?

我正在开发一个程序,您可以在其中注册投诉。投诉分为三种类型:(internal来自员工的错误)、external(来自另一家公司supplier的错误)和(来自供应商的错误)。它们持有不同的数据,无法共享。我目前有 4 个表(投诉、员工、公司和供应商)。这是表格的可视化:

我对子类型有基本的了解,但我似乎无法将它们从 ERD 转换为实际的 SQL Server 数据库,或者至少在这种情况下是这样。这大致是 4 个表的外观(省略了不相关的属性):

投诉
ComplaintId PK

员工
EmployeeId PK
EmployeeName

公司
CompanyId PK
公司名称

供应
商 SupplierId PK
供应商名称

注册投诉时,三种类型中的任何一种都会出错,并且它们都存储不同的信息。在这种情况下存储信息的最佳方式是什么?我曾考虑在投诉表中放置 2 个鉴别器:ComplaintType因此Id我可以指出要检查的表以及我需要的 ID,但这不是很干净也不是很有效。

请协助。

0 投票
4 回答
1446 浏览

sql-server - 超类型表 - 多重继承可能吗?

这个问题可能有一个标准做法的简单答案,或者因为一个简单的原因无法完成而没有答案,或者只是一个有趣的思考练习。我目前坐在最后一个选项上,但希望第一个......

假设我想在我的数据模型中创建实体的“组”或“类”。通常,我会使用这样的超类型表:

然后我的插入可能会通过外部看起来像每个子表的正常 CRUD 过程,但在内部插入DrivableEntity然后使用范围标识插入到预期的表中。

作为一名程序员而不是数据建模者,这让我开始思考对象继承。对于直接继承,这很棒。通用数据/任务可以抽象一个级别,可以维护 Liskov 替换等。但是数据模型中是否可以进行多重继承?

我主要是 C# 开发人员,所以我开始考虑接口。如果我想公开“实现”IDrivable和/或ITowable等的表怎么办。这样的事情可能吗?有没有人做过类似的事情?

0 投票
1 回答
3510 浏览

android - myClass 类型的方法 onKeyPreIme(int, KeyEvent) 必须覆盖或实现超类型

我正在尝试在应用程序中创建一个锁定屏幕,以便当用户(远程)请求它时,手机将使用预设密码锁定自己。

我正在尝试使用 onKeyPreIme 方法,因为我读到 onKeyDown() 和其他相关方法有时会在 android 系统执行默认操作后被消耗(可能很少见,但可能)。

我让我的代码扩展了 View 而不是 Activity 并让 onKeyPreIme 工作,但此时没有其他编码可以工作,因为我需要为此扩展 Activity。我也尝试实现 KeyEvent.Callback 但这并没有改变任何东西。我在 Eclipse 中检查了我的设置,它是基于 java 1.6 开发的,我的 android 插件和我的 Eclipse 一样是完全最新的。我拥有的 Eclipse 是面向 Java Developers 的 Eclipse IDE,还有面向 Java EE Developers 和 Eclipse Classic 的 Eclipse IDE。我想知道这两个是否会有所不同?

我最初在 Eclipse 中构建了这个项目,所以它没有从其他任何地方导入,所以我知道这不是问题。

我尝试不覆盖,但当然这没有做任何事情,而且我还得到“返回 super.onKeyPreIme”的“方法 onKeyPreIme(int, KeyEvent) 未定义类型 Activity”

我不知道该怎么做才能让 onKeyPreIme 正常工作。

如果我不能让它工作,那么使用 onKeyDown (以及 onKeyUp 和 onKeyLongPress)会有什么缺点吗?

有人对如何让 OnKeyPreIme 正常工作有任何想法吗?

0 投票
4 回答
21985 浏览

java - isAnnotationPresent() 在 Java 中与超类型引用一起使用时返回 false

我正在尝试使用反射从超类型引用变量中获取注释详细信息,以使该方法接受所有子类型。但isAnnotationPresent()归来false。与其他注释相关的方法相同。如果在确切类型上使用,则输出符合预期。

我知道即使我通过超类型引用,注释信息也将在 Object 上可用。

如何获取注释信息?

0 投票
1 回答
314 浏览

codeigniter - 如何在 CodeIgnitor 的 DataMapper ORM 中设置超类型和子类型关系?

我正在运行一个在线食品杂志,用户可以在其中记录日记条目。有四种类型的条目:食物条目、运动条目、测量和完成的任务。条目有几个共同的属性(例如,id、amount、unit_id 等),但它们也有特定于类型的属性(例如,food_id、exercise_id 等)。这是超级和子类型关系的完美候选者。

这是我的表格(简化):

所以我的问题是,如何使用 CodeIgniter 的 DataMapper ORM 设置超类型和子类型关系?我查看了用户指南的关系和高级关系部分,但找不到任何东西。

如果 DataMapper 无法实现,我可以想到一些解决方案:

  1. 向上滚动子类型属性(1个大表,呃)
  2. 向下滚动超类型属性(4 个单独的表,呃)
  3. 去核并使用 Doctrine 2.0 ORM(YAML 配置文件,啊!)
  4. 使用其原生 ORM 支持表继承的不同框架(我将 Kohana 和 FuelPHP 与 CodeIgniter 列入候选名单)。
  5. 手动编码超类型和子类型关系(首先破坏了 ORM 的目的)。

我对我的任何选择都不感到兴奋。选项 1 和 2 会让人头疼(请参阅本文底部。选项 3 似乎是用大锤进行的手术。我对选项 4 持开放态度,因为我还没有开始编写任何框架代码(这是 CI 和 Kohana 之间的一个非常艰难的选择)。选项 5 就是我现在所在的位置。

有什么建议么?谢谢您的帮助!

0 投票
1 回答
135 浏览

php - 当我扩展一个类时,我是直接从子类型调用静态函数还是应该每次都使用 parent::?

当我在超类型中定义一个函数并在没有 parent:: 的情况下调用它时,它给了我并错误地告诉我它是未定义的函数。我想知道我是否应该每次都使用 parent:: 或者我是否在其他地方做错了什么。

我有一个名为 core 的类,它有一个用于转义字符串的 escape() 函数我试图从子类型中调用这个函数。 所有方法都是静态的。

现在我不认为静态方法是继承的。我将所有静态超类方法称为

现在。因为静态方法不是继承的。

0 投票
3 回答
81 浏览

php - 如何从子类的实例调用父类的函数?

通常,(在子类型定义中)我使用

然后我调用 $subtypeinstance->enable()

但我也可以使用类似的东西吗

或者

0 投票
2 回答
456 浏览

java - 如何在 Java 中使用泛型类的超类型?

在我的代码中,我有许多传递给排序方法的 ArrayList。这些 ArrayList 中的每一个都有不同的 Generic 类型,但所有这些类型都是 Sorter 的实现。排序方法旨在接受 Sorter 类型的 ArrayList。我的问题是我还没有找到一种方法将数组列表的类型转换为它们的超类型,以便可以将它们传递给 sorter 方法。下面是 sorter 方法的格式:

Spatial 类是 sorter 的实现,如下所示:

但是,当调用快速排序方法时会产生错误(children 是 Spatial 类型的 ArrayList):

有任何想法吗?