为什么使用方法局部抽象内部类

2024-03-02

可以与方法局部内部类一起使用的合法修饰符之一是抽象的。

例如:

public class Outer {
    public void method(){
        abstract class Inner{
        }
    }
}

有没有什么情况你会实际使用这个?

为了参加 SCJP 考试,您必须了解这一点。


原始问题中有一些无效的假设。某些东西是合法/有效的 Java 并不意味着它是您需要使用或需要了解的东西。

我不记得 SCJP 包含奇怪的极端案例问题。

我试图想出一个案例,在该案例中我会使用在方法中声明的抽象类,但一切看起来都很奇怪,而且设计得很糟糕。 然而,这是我想出的一个代码示例(恕我直言,代码设计仍然很糟糕)

public class BatchExecutor {

    public static enum ResultNotification {
        JMS,
        MAIL
    };

    public Runnable createRunnable(ResultNotification type) {
        abstract class Prototype implements Runnable {
            public void run() {
                performBusinessLogic();
                publishResult();
            }

            abstract void publishResult();
        }

        switch (type) {
            case JMS: {
                return new Prototype() {
                    void publishResult() {
                        //Post result to JMS
                    }
                };
            }
            case MAIL: {
                return new Prototype() {
                    void publishResult() {
                        //Post result to MAIL
                    }
                };
            }
        }
        return null;
    }

    private void performBusinessLogic() {
        //Some business logic
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用方法局部抽象内部类 的相关文章

  • JPA 中的复合键

    我想创建一个具有自动生成的主键的实体 而且还有一个由其他两个字段组成的唯一复合键 我如何在 JPA 中执行此操作 我想这样做是因为主键应该用作另一个表中的外键 并且使其复合并不好 在下面的代码片段中 我需要命令和模型是唯一的 pk当然是主键
  • 如何将 javax.persistence.Column 定义为 Unsigned TINYINT?

    我正在基于 MySQL 数据库中的现有表创建 Java 持久性实体 Bean 使用 NetBeans IDE 8 0 1 我在这个表中遇到了一个字段 其类型为 无符号 TINYINT 3 我发现可以执行以下操作将列的类型定义为 unsign
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • Spring Boot自动装配存储库始终为空[重复]

    这个问题在这里已经有答案了 每次我进入我的服务类时 存储库似乎都没有自动连接 因为它不断抛出 NullPointerException 谁能帮我检查一下我缺少什么吗 这是我的代码 演示应用程序 java package com exampl
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • 使用 JUnit 时,有没有办法验证测试方法中是否调用了 try/catch 指令的 Catch 部分?

    例如 如果我想测试以下课程 public class SomeClass public void someMethod try Some code where comething could go wrong catch Exception
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • Java中HashMap和ArrayList的区别?

    在爪哇 ArrayList and HashMap被用作集合 但我不明白我们应该在哪些情况下使用ArrayList以及使用时间HashMap 他们两者之间的主要区别是什么 您具体询问的是 ArrayList 和 HashMap 但我认为要完
  • 将 Apache Camel 执行器指标发送到 Prometheus

    我正在尝试转发 添加 Actuator Camel 指标 actuator camelroutes 将交换 交易数量等指标 发送到 Prometheus Actuator 端点 有没有办法让我配置 Camel 将这些指标添加到 Promet
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • 如何阻止机器人和垃圾邮件提交评论?

    现在 我正在使用验证码图像 我创建了文本字段并使用 JavaScript 隐藏它 我希望它的值在服务器端为空 因为机器人应该填写表单上的所有字段 如果值不为空 则不会处理注释 我还使用时间戳来检查提交评论花了多长时间 我想如果评论是在 15
  • Grails 内联插件:无法升级通过 BuildConfig.groovy 配置的插件

    我们的应用程序分为一个主应用程序和一些插件 我们通过 BuildConfig groovy 文件使用内联插件 当需要对整个生产进行 WAR 时 我收到以下消息 您无法升级以下插件 通过 BuildConfig groovy 配置 删除配置以
  • 国际化 Web 应用程序的最佳实践?

    国际化网络应用程序似乎总是一件苦差事 无论您对可插入语言做了多少计划 总会存在编码问题 不适合您的模板的时髦措辞以及其他问题 我认为 获得 SO 社区的意见是很有用的 程序员在决定将其 Web 应用程序国际化时应该注意这些事项 国际化很困难
  • 如何从地址栏搜索网站

    当我写 stackoverflow com 或 bing com 然后在 google chrome URL 中输入空格时 它会添加 搜索 stackoverflow 或 搜索 bing 那么我们需要在网络应用程序中实现什么才能让 goog
  • 以 vsdoc 格式记录 javascript 的 T 类型数组,我发现错误了吗?

    下列的这些 vsdoc 文档指南 http weblogs asp net bleroy archive 2007 04 23 the format for javascript doc comments aspx 我无法让智能感知对给定类
  • XmlSchema.Read 给出 COMException“灾难性失败”

    我有一个实用程序类 其中包含一些与 XML 模式相关的方法 在没有任何代码更改或对环境进行任何已知更改的情况下 它突然开始出现系统性故障 失败的方法 public static XmlSchema GetSchema string xsdF
  • Android 交叉编译时链接器错误

    我想为 Android 交叉编译我的项目 我创建了 cargo config 如下 target armv7 linux androideabi ar optHDD AndroidNDK toolchains llvm prebuilt l
  • 将工作表添加到 Excel 工作簿

    我正在尝试创建一个WorkbookExcel 中有多个工作表 但我不知道如何创建多个工作表 我可以很好地创建一个 但是当我尝试创建第二个来写入时 我收到错误 Dim app As Application New Application Di
  • 使用 AngularJS 和 jQuery 修改 DOM (slideDown/slideUp)

    我正在尝试使用 AngularJS 实现 SlideDown slideUp 动画 我不能使用 CSS3 的转换 不幸的是 因为height被设定为auto 而且我不想使用the max height解决方法 https stackover
  • 我的 C# 应用程序被防病毒应用程序标记。我如何找出原因? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个 C 应用程序被多个防病毒应
  • 减去数据帧 pandas 时的 NaN

    我有两个数据框 只有一些重叠的索引和列 old pd DataFrame index A B C columns k l m data abs np floor np random rand 3 3 10 new pd DataFrame
  • 在PIL中绘制半透​​明多边形

    如何使用绘制半透明多边形Python 图像库 https en wikipedia org wiki Python Imaging Library 您可以在单独的 RGBA 图像上绘制多边形 然后使用Image paste 图像 框 蒙版
  • pandas.DataFrame 的矢量化集成

    我有一个DataFrame力 位移数据 位移数组已设置为DataFrame索引 列是我针对不同测试的各种力曲线 如何计算完成的功 即 曲线下面积 我在看numpy trapz http docs scipy org doc numpy 1
  • 使用 unixOdbc 的 SELECT 之一失败 - SQLSTATE[24000]:无效的游标状态

    我正在运行安装了 FreeTDS 和 ODBC 软件包 php5 odbc 的 Ubuntu 13 10 我使用 tds 版本 8 0 但也尝试过 tds 版本 7 2 我正在使用 PDO 这是我的 DSN dsn sprintf odbc
  • 可以在 Node.js 模块中异步初始化导出吗?

    由于 MongoDB 数据库访问和初始化在 Node js 上是异步的 因此我想为每个集合定义一个模块 在数据库初始化后导出包装的数据库调用 这样的 Cars model js 模块如下所示 var db require mongodb d
  • NSArray 属性:复制还是保留?

    根据这个 NSString 属性 复制还是保留 https stackoverflow com questions 387959 nsstring property copy or retain 对于 NSString NSMutableS
  • 如何计算 pandas 数据框中满足布尔条件的时间间隔数?

    我有一只熊猫df时间序列在column1 以及布尔条件column2 这描述了满足特定条件的连续时间间隔 请注意 时间间隔的长度不等 Timestamp Boolean condition 1 1 2 1 3 0 4 1 5 1 6 1 7
  • 是否可以将 URL 中的图像放入 android 中的图像按钮中?

    我想做的是数据库列表视图 右侧有一个小图像按钮和文字 然后我希望小图像通过给出的 URL 进行更改 一个文本文件 但我被卡住了 2 小时规则已到 对于 文件长度 所以网址是www site com images i png http www
  • `crypto.randomInt()` 加密安全吗?

    我正在寻找一种生成安全随机数的好方法Node js 我找到并正在使用的一个答案是crypto randomInt https nodejs org api crypto html crypto crypto randomint min ma
  • 为什么使用方法局部抽象内部类

    可以与方法局部内部类一起使用的合法修饰符之一是抽象的 例如 public class Outer public void method abstract class Inner 有没有什么情况你会实际使用这个 为了参加 SCJP 考试 您必