从不同的类中获取变量

时间:2012-02-08 15:52:06

标签: java

所以我试图削减一些已编写的代码。我创建了一个单独的类来尝试这个。我让那个类正常工作,但旧的类使用现在在单独的类中的变量。我如何访问这些变量?不幸的是我不能为此分享所有代码,但我可以发出我认为必要的小块。谢谢你的帮助

这是来自我现在试图将变量带到的旧类:我正试图将“loader”带到

// XComponentLoader loader = null;

fixture.execute(new OpenOfficeOpener());
component = loader.loadComponentFromURL("file:///"+System.getenv("BONDER_ROOT") + "/ControlledFiles/CommonFiles/"+spreadsheet, "_blank", 0, loadProps);

5 个答案:

答案 0 :(得分:0)

您可以为需要在外面看到的成员编写getter。例如:

public class MyClass {
     private int member1;
     private String member2;

     public int getMember1() { 
         return member1;
     }

     public String getMember2() { 
         return member2;
     }
}

现在可以从外部访问member1member2

答案 1 :(得分:0)

您的问题有几种解决方案。我建议在类中添加一个方法,将值返回给新程序,或将其作为参数传递。 更高级别的示例可能如下所示:

x = newClass.getValX()

答案 2 :(得分:0)

听起来你正在寻找静态场,但如果是这样的话,你几乎肯定会重新考虑你当前的设计。

public class YourClass {

    private static XComponentLoader loader;

    public YourClass() {
       YourClass.loader = new XComponentLoader();
    }


}

并从另一个类访问它:

public YourOtherClass {
    public void yourMethod() {
        YourClass.loader ...
    }
}

答案 3 :(得分:0)

如果loader是静态的,那么执行以下操作:

component = TheOtherClass.loader.loadComponentFromURL( ...

否则,您的新类需要引用另一个类的实例。你可以用构造函数传递它:

public class NewClass {

    private OldClass oldClass = null;
    public NewClass(OldClass oldClass) {
       this.oldClass = oldClass;
    }

    // ...

       fixture.execute(new OpenOfficeOpener());
       // assuming, loader is a public field on OldClass.
       // a getter (getLoader()) is preferred
       component = oldClass.loader.loadComponentFromURL("file:///"+System.getenv("BONDER_ROOT") + "/ControlledFiles/CommonFiles/"+spreadsheet, "_blank", 0, loadProps);

   // ...
}

答案 4 :(得分:0)

我已将功能拆分为两个类,然后您可能希望让一个类实例化另一个类。

如果你把新代码放在B类中,那么它可能看起来像这样。

public class A {
    // Class B instance
    B b = new B();

    public void doSomething() {
        b.loadComponentFromURL("someurl");
    }
}

或者如果加载器本身就是一个实例,你可以像这样调用它。

b.getLoader().loadComponentFromURL("someurl");