java - 具有匿名类型构造函数的对象类

标签 java object anonymous anonymous-class anonymous-inner-class

我正在创建一个对象作为具有匿名类型的类变量。没有编译错误。我的问题是如何使用该类?如何调用我定义的方法?它实际用在什么地方?

public class MyClass {

    Object o = new Object(){
        public void myMethod(){
            System.out.println("In my method");
        }
    };

}

我无法调用对象 o 的 myMethod()。如何做到这一点以及我们何时使用它?

最佳答案

调用不属于父类(super class)方法的匿名类方法的唯一方法是立即调用它:

new Object(){
    public void myMethod(){
        System.out.println("In my method");
    }
}.myMethod();

如果您只是将匿名类存储在 Object 变量中,您将无法再调用其方法(正如您所发现的)。

然而,这种构造的用处似乎相当有限......

关于java - 具有匿名类型构造函数的对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671672/

相关文章:

java - <app-name> 不幸地停止了

object - 从 PointCloud 创建蒙版 (cv::Mat) 以从使用 kinect 观察到的场景中提取对象

java - 如何在 Kotlin 中创建空类对象?

google-chrome - Cross Origin amazon S3 无法使用 chrome

java - 为什么java中的 "super type token"模式需要匿名类

java - 如何使 JList 在 netbeans Swing 应用程序中随窗口自动拉伸(stretch)?

java - 获取启动播放器的准确寻找方向

java - 如何在 java GUI 中添加 map (如 C# 的 GMap.net)?

JOIN 查询的 Php pdo 结果

Spring websocket没有主体