从变量引用访问包含实例变量的类

时间:2019-06-28 19:52:38

标签: java javafx

我不确定这是否值得提出疑问,但确实如此。

如果我有一些课程,可以说

public class myClass{
   Button btn = new Button;
   btn.setOnMouseEvent(myHandler);
   Text txt = "hello";
}

现在,如果用户触发了事件,我将在myHandler中执行一些代码。在这里,我需要访问txt变量,但是我只能通过button来引用event.getSource()
那么,如何获得对包含event.getSource()返回的对象beeing的类的引用?

编辑:也欢迎您提供有关标题的想法!

2 个答案:

答案 0 :(得分:1)

答案实际上很简单:

当事件处理程序实例X依赖于某些Y对象时,则需要使Y可用于X。

例如:

  • 在X的类中添加一个Y字段
  • 然后例如在进行new X(someY);时传递一个Y实例

换句话说:当您的MyClass(类名称应为UpperCase!)实例化myHandler对象时,它可以将“自身”(通过this传递给处理程序)。当然,这可能导致循环依赖(不良),这是一种解决方法:

  • Y实现了SomeInterface
  • 处理程序只知道SomeInterface,而从不知道或不在乎传递给它的SomeInterface实例...恰好是Y类型。

答案 1 :(得分:0)

If you are the one who crated MyHandler and if you can still modify the class then below style can be helpfull:


public class myClass{
   Button btn = new Button;
   Text txt = "hello";
   MyHandler myHandler = new MyHandler();

   myHandler.setMsg(txt );
   btn.setOnMouseEvent(myHandler);

}
class MyHandler {
    private msg;
    public setMsg(String msg){
      this.msg = msg;
    }
}