Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 触发Singleton类中的方法时收到通知_Java_Singleton - Fatal编程技术网

Java 触发Singleton类中的方法时收到通知

Java 触发Singleton类中的方法时收到通知,java,singleton,Java,Singleton,我在jar文件中有一个单例类。让我们以下面的课程为例 class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance == null) instance = new Singleton(); return instance;

我在jar文件中有一个单例类。让我们以下面的课程为例

class Singleton{
    private static Singleton instance;

    private Singleton(){}

    public static Singleton getInstance(){
        if(instance == null)
            instance = new Singleton();
        return instance;
    }

    public int addTwoNumbers(int num1, int num2){
        return num1+num2;
    }
现在我想知道addTwoNumbers方法何时被激发,以及传递给它的参数。重写该方法不是一个选项,因为它是单例中的一个选项。而且,因为它在jar文件中,所以我无法修改它。因此,使用观察者模式也不是一种选择。我有没有办法做到这一点


谢谢。

自己重新实现singleton类,并为其添加观察者功能。使用完全相同的包、类和方法名,并确保在类路径中包含新单例的jar/目录位于包含旧单例的jar/目录之前


或者修改现有单例的字节码。

您的代码是该单例的唯一客户端吗?如果是,我可以提供一些解决方案。但是如果jar文件中的类使用单例,则可能无法工作。让我知道这对你有用吗?@AlexandreSantos你是说面向方面编程?我们必须为此付出这么大的努力吗?@vkg我不知道你的意思。我说的这个罐子是我导入的一个库。我的代码与它是绝对分开的。我的意思是,在您的代码中,我们处理的是,当您的代码调用AddTwoNumber时,您将得到通知。@vkg每当其他方法调用AddTwoNumber时,我希望得到通知以及参数