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

如何为变量创建更改侦听器?

何向荣
2023-03-14
问题内容

假设我使用statement定义了一些变量int someVariable;。代码运行时,变量的值会更改。

如何跟踪此变量的变化?我如何实现某些行为类似于onSomeVariableChangedListener的侦听器?

我还需要知道何时在一个页面中执行了其他方法,以便可以在另一个类中设置侦听器。


问题答案:

这是将变量隐藏在 setter / getter
对后面的众多原因之一。然后,在设置器中,您可以通知您的侦听器此变量已通过适当的方式进行了修改。正如其他人所评论的那样,没有内置的方法可以精确地完成您想要的事情,您需要自己实现它。

另外,本杰明会提出一个有趣的模式,称为Decorator模式,如果无法修改相关代码,该模式可能对您有用。您可以在Wikipedia上查找更多信息。

这个想法是围绕对象构建一个兼容的包装器。假设您所讨论的对象的类型为MyClass。

class MyClass{
   publc void doFunc(){...}
}

class MyLoggedClass extends MyClass{
    MyClass myObject;

    publc void doFunc(){
        //Log doFunc Call

       myObject.doFunc();

    }
}

代替

MyClass object = new MyClass();

你会用

MyClass object = new MyLoggedClass(new MyClass());

现在,您的其余代码将按常规使用object,不同之处在于每个函数调用都会被记录或通知,等等。

正如您将在Wikipedia中看到的那样,这通常是通过相关类继承自的接口来完成的,但是在您的情况下可能无法实现。



 类似资料:
  • 是否有一种方法来构建侦听器,以检测日期是否仍被传输到变量,如果是,则做一件事,当不做另一件事? 例如 直到“int counter1”增加设置布尔值(true)或打印或更改另一个int值为1 int计数器(不再增加或减少),设置布尔值(false),打印不同的东西,改变另一个int为2。 基本上变量改变加或减,做一件事停止改变,做另一件事重新开始改变,回去做第一件事等。 有办法做到这一点吗?没有明

  • 问题内容: 我有一个我想在其中的文本更改时调用一个函数。 我怎么做? 问题答案: Java跟踪JTextField文本内容变化的适当侦听器是DocumentListener,您必须将其添加到JTextField的文档中:

  • 问题内容: 我希望在用户更改文本字段中的值后立即显示消息框。目前,我需要按Enter键才能弹出消息框。我的代码有什么问题吗? 任何帮助,将不胜感激! 问题答案: 将侦听器添加到为你自动创建的基础文档中。

  • 问题内容: 在SO和google中寻找了这个问题的答案,但找不到任何答案。 我有以下代码: 编译器返回以下内容: 从内部类内部访问局部变量变量;需要宣布为最终 为什么必须最终决定的技术原因是什么? 问题答案: 这是因为您正在使用匿名内部类。发生的是编译器为您创建了类。它将其称为您的外部类,并添加和编号,例如,等等。 该类具有对自动初始化的外部类的引用,因此其实例可以使用外部类的方法和字段。 但是您

  • 本文向大家介绍Android 侦听SharedPreferences更改,包括了Android 侦听SharedPreferences更改的使用技巧和注意事项,需要的朋友参考一下 示例 请注意: 仅当添加或更改值时,侦听器才会触发,设置相同的值将不会调用它; 侦听器需要保存在成员变量中,而不是匿名类,因为registerOnSharedPreferenceChangeListener它使用弱引用进

  • 问题内容: 我希望消息框在用户更改文本字段中的值后立即显示。目前,我需要按Enter键才能弹出消息框。我的代码有什么问题吗? 任何帮助,将不胜感激! 问题答案: 将侦听器添加到为您自动创建的基础文档中。