问题标签 [abstract]

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 投票
4 回答
903 浏览

c# - 保持元素的排序列表,按该元素外部的属性排序

我有一个维护对象列表的“管理器”类。每个Object都有一个特定的“位置”,但这一点他们不知道,只有管理者知道。管理器必须为每个对象分配一个位置并维护其根据此“外部属性”排序的对象列表。

请注意,对象的位置可以随时更改。理想情况下,我应该能够随时立即获得 X 位置的元素或元素 X 的位置。

这是 C# 代码。我想知道这样做的干净或惯用方式是什么。

我想过做一个这样的内部类:

然后维护一个 SortedElements 列表。我不知道,这对我来说似乎很笨拙。例如,两个 SortedElements 可以具有相同的 Position。我觉得我缺少一个明显,干净的解决方案。我也可以让 Position 成为 Elements 本身的属性,但这在语义上没有意义,这意味着除了让我的生活更轻松之外,他们没有理由知道这一点。

请让我捂脸

编辑:遵循 Eric Lippert 列出我的要求和睡个好觉的建议,我意识到我应该选择 aLinkedList<Element>并将索引用作位置。实际上,这里最常见的操作将是在容器内的开头插入和删除,这在基于数组的容器上是昂贵的。感谢所有回复。

0 投票
3 回答
406 浏览

scala - Scala 抽象方法参数问题,T 列表

我有一个辅助方法:

调用:

其要点是在传入的实体上调用“callSomeMethod”(例如从 ORM 加载),它也顺便将事物包装在异常处理中。

我现在想添加一个新方法,它做同样的事情,但用于 T 的集合(java.util.List)。

我不确定在方法签名中使用 T 集合的语法和结构,以及抽象类型参数定义。

谢谢你的帮助。

0 投票
5 回答
567 浏览

class - 在接口和抽象类之间进行选择时要考虑哪些因素?

在设计我的软件时,我从接口开始,因为这似乎是“标准”。然后我切换到抽象类,因为它们似乎更适合手头的问题。但是,我不确定在做出此设计选择时是否遗漏了一些注意事项。除了我考虑过的领域特定问题之外,在接口和抽象类之间进行选择时要考虑的更一般的因素是什么?

0 投票
3 回答
1456 浏览

reflection - 通过 Scala 中的反射实现/实例化抽象类

我正在为 Scala 中的 EA(进化算法)项目开发框架。在这一点上,我有一个实现通用 EA 代码的特征,并将诸如基因型转换和适应性测试之类的问题特定代码留给实现此特征的类。但是,由于测试不同的人口选择协议/策略,我不想在实际运行之前完全实现该特征。这给出了代码

在运行时选择协议/策略:

SelectionStrategies/SelectionProtocols 对象包含对 EAProblem 中其他代码的引用的clusures。

我现在想要的是使用反射(或其他一些机制)实例化其他抽象类的方法,比如 OneMax(我有很多)。伪代码:

0 投票
5 回答
73817 浏览

java - 为什么不抽象字段?

为什么 Java 类不能像抽象方法那样具有抽象字段?

例如:我有两个扩展同一个抽象基类的类。这两个类都有一个相同的方法,除了一个字符串常量,它恰好是一个错误消息,在它们里面。如果字段可以是抽象的,我可以使这个常量抽象并将方法拉到基类中。相反,我必须创建一个抽象方法,getErrMsg()在本例中调用,它返回字符串,在两个派生类中重写此方法,然后我可以调用该方法(现在调用抽象方法)。

为什么我不能一开始就让这个领域抽象呢?Java是否可以被设计为允许这样做?

0 投票
2 回答
2702 浏览

java - 如何为抽象类的子类声明默认构造函数?

以下内容在 Java 中对我不起作用。Eclipse 抱怨没有这样的构造函数。我已将构造函数添加到子类以解决它,但是还有另一种方法可以做我想做的事情吗?

0 投票
1 回答
814 浏览

oop - 从抽象类继承属性,并在抽象属性上对集合进行排序

我正在使用 Grails 创建发票管理应用程序,并且遇到继承问题。

如果我的意图是每张发票都应包含一组行/项目,并且当发票格式化为打印时,项目按日期排序,按类别分成列表,然后以不同的方式计算每行的价格每种具体类型的方式(定时项目将在 rate 属性中查找每小时,定价项目在创建时分配一个价格)。

Node Invoice 有一个属性“items”,它是 Item 对象的集合。

我的域类的来源:

有问题的代码的来源:

错误消息:
groovy.lang.MissingPropertyException:没有这样的属性:类的类别:TimedItem

Stacktrace 表示上述示例的第 6 行。

0 投票
1 回答
1865 浏览

inheritance - TablePerHierarchy 对于抽象类总是假的?

根据Grails GORM 指南,域类的子类与父类共享同一个表,除非 tablePerHierarchy 设置为 false。

由于“抽象”关键字,我找不到有关以下映射语句是否被忽略的信息

我的数据库不包含 Item 表,并且每个子类一个表(tablePerHierarchy==false 的预期状态)。

我是否需要使项目具体但在验证中不允许它?我计划在创建表单中使用 <select> 选择一个带有子类的 ItemController。

0 投票
5 回答
36725 浏览

java - 抽象类应该至少有一个抽象方法吗?

抽象类是否必须至少有一个抽象方法?

0 投票
6 回答
505 浏览

c# - 如何创建一个可以访问创建它的类的成员的嵌套类?

我在 C#.NET 中编程。我想创建一个嵌套类,它可以访问创建它的实例的成员,但我似乎无法弄清楚如何。

这就是我想要做的:

我该怎么做?我尝试将 Door 类嵌套在 Car 类中,但它无法以这种方式访问​​ Car 类的成员。我需要让 Car 继承门类还是什么?