无法调用匿名类方法

2023-12-13

我正在尝试调用一个方法,setPostal(String post)我是从一个匿名类创建的,但由于某种原因,编译器在缅因州甚至无法识别它。这是有什么原因吗?我的代码的一部分(地址是Student的内部类):

Student

public class Student implements Gradeable, Cloneable {
    String name;
    int id;
    Address address;

    public Student() {
        name = "unknown";
        address = new Address();
    }

    public Student(String name, int id, Integer... option) {
        this.name = name;
        this.id = id;
        if (option.length > 0) {
            if (option[0] > 0) {
                address = new Address() {
                    String postal;

                    public void setPostal(String post) {
                        postal = post;
                    }

                    @Override
                    public String toString() {
                        return "Street: " + street + " | number: " + number
                                + " | town: " + town + " | province: " + province
                                + " | Postal Code: " + postal;
                    }
                };
            }
        } else {
            address = new Address();
        }
    }

    Address getAddress() {
        return address;
    }

    void setAddress(Address address) {
        this.address = address;
    }

    public static void main(String[] args) throws CloneNotSupportedException, InterruptedException {
        Student test = new Student("ryan", 41254, 1);
        test.getAddress().setPostal("L1G 6h9") // Compiler: Cannot resolve symbol 'setPostal'
    }
}

Address

public class Address implements Cloneable {
    String street;
    int number;
    String town;
    String province;
    String zip;

    public Address() {

    }

    public Address(String street, int number, String town,
                   String province, String zip) {
        this.street = street;
        this.number = number;
        this.town = town;
        this.province = province;
        this.zip = zip;
    }

    String getStreet() {
        return street;
    }

    int getNumber() {
        return number;
    }

    String getTown() {
        return town;
    }

    String getProvince() {
        return province;
    }

    String getZip() {
        return zip;
    }

    @Override
    public String toString() {
        return "Street: " + street + " | number: " + number
                + " | town: " + town + " | province: " + province
                + " | ZIP: " + zip;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Address)
            if (((Address) obj).getStreet().equals(street)
                    && ((Address) obj).getNumber() == number
                    && ((Address) obj).getTown().equals(town)
                    && ((Address) obj).getProvince().equals(province)
                    && ((Address) obj).getZip().equals(zip)){
                System.out.println("Address equal");
                return true;
            }
        System.out.println("Address not equal");
        return false;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

想必,无论怎样Address是,它没有setPostal(String)方法。

实例方法在编译时根据调用它们的值的类型进行解析。

你正在调用它

test3.getAddress().setPostal("L1G 6h9") //Compiler: Cannot resolve symbol 'setPostal'

在类型表达式上Address,它没有这样的方法,不管子类型(匿名子类)有这样的方法。


调用仅在匿名类中声明的方法的唯一方法(减去反射)是对匿名类实例创建表达式返回的值调用该方法。

new Address() {
    String postal;
    public void setPostal(String post) {
        postal = post;
    }

    @Override
    public String toString() {
        return "Street: " + street + " | number: " + number
                        + " | town: " + town + " | province: " + province
                        + " | Postal Code: " + postal;
        }
    }
}.setPostal("whatever");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法调用匿名类方法 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 角度平移即时方法不起作用

    我们有一个带有角度翻译的网站 它工作完美 我们有一个变量 我们想用某种语言键来固定它 假设网站的语言有 en 和 zh 作为选项 我希望无论语言选择如何 某个翻译都以 zh 返回 通过浏览API参考 我找到了一种名为 Instant 的方法
  • C++ 宏乘法是怎么回事

    define MAX 265 std cout lt lt 0 MAX lt lt std endl to my surprise the output is 9 rather than 0 这个 C 宏乘法有什么问题 EDIT 以下是完整
  • 使用 ElementTree 解析具有特殊字符的 XML

    我尝试使用 GET 服务进行解析ElementTree 其内容我不控制 包含非 UTF8 特殊字符 respXML response content decode utf 8 respRoot ET fromstring respXML 第
  • 用前导零填充数字列

    过去几个小时我一直在研究这个问题 我尝试过使用sprintf但它会将列更改为字符 我想要做的就是拥有一个固定宽度的数字列 并用零填充 如果您愿意使用自定义类 则可以编写一个打印方法来执行此操作 制作一个数据框 并为其指定一个自定义类 DF
  • 根据顶部图像的 Alpha/透明度混合两个 uiimage

    我正在尝试将背景与前景图像混合 其中前景图像是带有线条的透明图像 我正在尝试这样做 UIGraphicsBeginImageContext CGSizeMake 320 480 CGContextRef context UIGraphics
  • ORION:获取订阅列表

    我有兴趣访问活动订阅列表 但在阅读了所有有关 API 的 wiki 后 https forge fi ware org plugins mediawiki wiki fiware index php Publish Subscribe Br
  • 与empty、isset、!empty、!isset 混淆

    我有以下内容无法正常工作 GET category 也可以等于0 if empty GET category do something else do something else 我如何重写这个 if 语句来做 3 件不同的事情 做某事如
  • JSOUP - 如何使用 JSOUP 抓取“需要登录”页面

    我在抓取我想要抓取的确定的网站时遇到困难 问题是 成功登录该网站后 我无法访问需要有效登录的链接 例如 public Document executeLogin String user String password try Connect
  • PHP 联系表 - 发送后希望留在我的网站上

    我正在创建 PHP 联系表单我所遇到的只是我的 php 脚本的一个小问题 当电子邮件发送出去时 会调用一个新的 谢谢 页面 因此 带有联系表单的实际网站消失了 但我不希望这种情况发生 如果按下发送按钮我想要stay在我的网站上 显示一个空的
  • 如何对 pandas DataFrame 中的连续值进行分组

    我在 DataFrame 中有一个列 其中包含值 1 1 1 1 1 1 我怎样才能像这样将它们分组 1 1 1 1 1 1 您可以使用groupby按习惯Series df pd DataFrame a 1 1 1 1 1 1 print
  • 在 R 中按列中的行值和行中的列值对 data.frame 进行排序

    我有六只玄凤鹦鹉鸟 Beefy Scoundrel Baston Mattdamon Jesus and Hulkhogan 这些鸟拉屎很多 而且在很多不同的地方 我决定追踪过去两周内这种情况发生的地点和频率 并且我试图找出这些小恶魔今天在
  • 添加内联注释后 Bash 命令停止工作

    在子 shell 中生成的新值的分配在没有尾随注释的情况下也可以工作 newname echo newname sed s TD oldnewTD TD r ftd1 但变量newname如果添加尾随注释 则保持不变 newname ech
  • 暂停所有其他视频,无论页面上有多少视频

    因此 我在一个多页面项目上使用 video js 该项目的页面每个页面上的视频数量不同 我想播放一个视频来暂停页面上播放的任何其他视频 我已经让它工作了 但我的代码只有在专门针对该页面制作时才有效 而不是单独处理每个页面 HTML 示例
  • 从抽象基类实现纯虚函数:重写说明符有什么意义吗?

    背景 我刚刚偶然发现了一个用例override说明符据我所知 这似乎是多余的 而且也没有任何特定的语义含义 但也许我遗漏了一些东西 因此这个问题 在继续之前 我应该指出 我试图在这里找到答案 但我得到的最接近的是以下线程 并没有真正回答我的
  • Selection.OnAction = "工作簿名称!Macroname"

    假设您有两个工作簿 一个名为 MyWorkbook 另一个名为 PatchMyWorkbook 两个工作簿在保存时都打开 PatchMyWorkbook 有一个宏 用于添加按钮并将 MyWorkbook 的现有宏分配给 MyWorkbook
  • Spring 中的 Elasticsearch HTTP 身份验证

    我想访问受用户名和密码保护的远程elasticsearch https 用户名 密码 aws eu west 1 portal1 dblayer com 11109 在 Spring 中 使用 XML 配置我能够访问我的本地主机弹性 如下所
  • 使用 Jackson 和 Spring-Boot 将 Base64 编码的 JSON 解码为 POJO

    我有一个这样的请求 varA A varB TCFNhbiBKb3NlMRgwFgYDVQQK 关键在哪里varB是一个 base64 编码的 JSON 字符串 像这样的东西 nestedVarB1 some value here nest
  • SymPy 仅打印函数名称

    我正在尝试在 SymPy 中进行一些符号计算 但我无法使用乳胶打印并获得我想要的图形输出 这一直困扰着我 并且花了几个小时 也许是几天 试图找到一种自定义对象打印方式的方法 在 LaTeX 中 在 pprint 表示中 它有很好的文档记录
  • redis dbsize命令的准确性

    准确度如何dbsizeredis 中的命令 我注意到返回的键数dbsize与返回的实际键数不匹配keys命令 这是一个例子 redis cli dbsize integer 3057 redis cli keys wc l 2072 Why
  • 无法调用匿名类方法

    我正在尝试调用一个方法 setPostal String post 我是从一个匿名类创建的 但由于某种原因 编译器在缅因州甚至无法识别它 这是有什么原因吗 我的代码的一部分 地址是Student的内部类 Student public cla