Java - 知道在attr中有我当前对象的obj

时间:2014-11-29 21:32:19

标签: java

我确信答案比我想象的要容易,而且我有点筋疲力尽,如果你发现我的问题,那就很抱歉......嗯。

让我们考虑以下两个类:

public class Objet1 {
     private Objet2 obj;
     //getter & setter
}

public class Objet2 {
    public void myFunc(Objet1 objj) {
    // blabla
    }
}
在myFunc中我需要访问Object1的一些方法,这就是我在params中使用Object1的原因。 有没有其他解决方案来访问它? 因为我必须写Object1 ob = new Object1(); ob.getObject2().myFunc(ob);之类的东西 我不认为/知道它是否是一个很好的使用java ..

我在Object2类中'我想知道是否有可能访问Object1,它在attr中有我的实际Object2而没有通过另一个param

提前致谢,对不起,如果我没有使用商品条款,那肯定是我找不到答案的原因

3 个答案:

答案 0 :(得分:0)

您可以创建myFunc static,然后使用

从外部访问它
Objet2.myFunc(ob);

但是如果你创建函数static,则无法访问Objet2实例的实例变量,那么将myFunc()置于Objet1类中会更有意义。 “正确”实施取决于您在myFunc()中要执行的操作。

答案 1 :(得分:0)

要访问对象,您必须具有对它的引用。因此,您必须将引用作为参数传递,就像您已经做的那样,或者将引用存储在某个静态变量中,这不是一个好主意。 可能是你应该将函数移动到Object1

public class Objet1 {
     private Objet2 obj;
     //getter & setter
     public void myFunc() {
       // blabla
    }
}

如果函数使用Object2的某些属性,可以将Object1和Object2合并为单个类。

答案 2 :(得分:0)

ob.getObject2().myFunc(ob);

也可以缩短为

ob.myFunc();

添加以下内容:

class Objet1 {
    private Objet2 obj;

    public void myFunc() {
        this.obj.myFunc(this);
    }
}

相关阅读: