当前位置: 首页 > 面试题库 >

Java抽象静态解决方法

魏兴邦
2023-03-14
问题内容

我了解由于歧义性问题,抽象类或接口都不能包含既抽象又静态的方法,但是有解决方法吗?

我想要一个抽象类或一个接口,该接口要求在扩展/实现该类/接口的所有类中都包含静态方法。有没有办法在Java中做到这一点?如果没有,这可能是我使用Java的最后一根稻草…

编辑1:此问题的上下文是我有一堆类,现在称它们为Stick,Ball和Toy,它们在数据库中有一堆条目。我想创建一个称为Fetchable的超类/接口,该超类/接口getFetchables()在其下面的每个类中都需要一个静态方法。Stick,Ball和Toy中的方法必须静态的原因是,它们将与数据库进行对话以检索每个类在数据库中的所有条目。

编辑2:对于那些说你不能用任何语言做到的人,那是不正确的。您当然可以在继承类方法的Ruby中执行此操作。这不是有人无法获得OO的情况,而是Java语言缺少功能的情况。您可以尝试辩称,您永远不需要继承静态(类)方法,但这是完全错误的,我将忽略提出这些观点的任何答案。


问题答案:

您有两种选择:

  1. 使用反射来查看该方法是否存在,然后调用它。
  2. 为名为@GetAllWidgetsMethod之类的静态方法创建注释。

  3. 正如其他人所说,请尝试不要使用静态方法。



 类似资料:
  • 问题内容: 我们有一个给定的REST接口: 可以根据服务器配置,通过不同的逻辑“计算器”来实现此计算。 现在,我们正在设计每个计算器必须实现的Java接口。该接口将为每个REST服务提供一个方法。 鉴于所有REST(和HTTP)调用都是无状态的,因此每个方法都应该是静态的。但是,您不能在Java接口中定义静态方法。有没有针对这种情况的好的解决方法? 我们可以将这些方法定义为非静态方法,然后仅创建一

  • 问题内容: 问题是在Java中为什么不能定义抽象静态方法?例如 问题答案: 因为“抽象”的意思是:“不实现任何功能”,而“静态”的意思是:“即使没有对象实例也有功能”。这是一个逻辑上的矛盾。

  • 问题内容: 问题是在Java中为什么不能定义抽象的静态方法?例如 问题答案: 因为“抽象”表示:“不执行任何功能”,而“静态”表示:“即使没有对象实例也具有功能”。这是一个逻辑上的矛盾。

  • 问题内容: 但是那我该如何解决呢? 我的应用程序使用几种类型的文件,我想分配一些静态属性,例如对该文件类型的描述(例如“数据文件”,另一个是“配置文件”,等等)。显然,我会将其放入静态String中,以便无需实例文件即可访问描述(对GUI fi有用)。另一方面,显然所有文件类型都应具有一些通用方法,例如,显然我想从通用超类继承。 在超类中当然是抽象的。 尝试使用超类和接口的组合,但是存在类似的问题

  • 问题内容: 是否可以使用需要解析数据的ui-router来建立抽象状态?我需要使用个人资料信息加载页面的上半部分,然后在页面底部添加一个用于加载其他详细信息的子导航。这个想法是,抽象状态每次都会加载配置文件信息,而不管我处于哪个子状态。它似乎不起作用。 例: 问题答案: 和它的 plnkr 因此,在我们的情况下,我们需要在父级中进行此更改 和这个孩子 因此,与其在父母和孩子中使用resolve:{

  • 我有一个php文件,代码如下,我收到错误: 严格的标准:非静态方法LinkCore::getImageLink()不应该被静态调用,假设$this从不兼容的上下文中...... 但如果我改变这一行: 具有 我明白了 解析错误:语法错误,意外'- 如果我用“publicstatic”声明所有函数,我会得到错误“致命错误:无法在类HTMLTemplateCustomPdf中使非静态方法HTMLTemp