Java访问调用者变量,可能吗?如何?

标签 java

我有课

    main {  
      Class1 class1=new Class1();  
      class1.function1(); 
    }


     class Class1 {   
        int abc=1;   
        ArrayList<Class2> class2s=new ArrayList<Class2>(); 

        int function1() {
          class2s.add(new Class2(asd));
          abc=555;   
        }    
     }

     class Class2 {   
        int functionx() {
          Log.e("abc?", ""+PARENT???.abc);   
        } 
     }

如何获取调用者类的变量,例如 abc?

最佳答案

您可以将调用者作为参数传递,如下所示:

int functionx(Class1 caller) {
  Log.e("abc?", ""+caller.abc)
}

并调用它

Class2 cls = new Class2()
cls.functionx(this)

只要 abc 对 Class2 可见。否则,在 Java 中没有直接的方法来了解你的调用者。变量class2s实现了Class1和Class2之间的单向关系。因此,您只能从 Class1 导航到 Class2,反之则不然。

关于Java访问调用者变量,可能吗?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272587/

相关文章:

java - 无法使用 JBoss AS 或 Wildfly 运行 Errai Dev 模式

java - 一种扩展java语法的简单方法

java - 我应该使用什么样的数据结构来捕获角色扮演游戏中的角色属性

java xslt教程

java - 排除所有依赖项的所有传递依赖项?

调用frame.setLocation() 时会触发Java mouseExited 事件

java - JDBC 连接池说明

java - 如何使用 Dagger2 将依赖项注入(inject)任何类型的对象?

java - 使用jfreechart创建条形图,通过访问2个文件中的数据并以不同的颜色显示文件1和文件2的数据

java - ItemView 不能为 null