java 在另一个类中使用对象

63lcw9qa  于 2023-01-29  发布在  Java
关注(0)|答案(3)|浏览(139)

我想在另一个类中使用instSubscribeTables() 我需要它的所有数据。我试图在Main()中创建一个getter,但它不起作用。也许我可以通过某种方式将它传递到另一个类中?有人能帮助我吗?
假设我需要在SubscribeTables()中调用inst.isConnected()

public class Main {
    public static void main(String[] args) throws IOException {

      // Setup NT4 Client
      NetworkTableInstance inst = NetworkTableInstance.getDefault();
      inst.startClient4("FRC Stat Track");
      selectNetworkTablesIP(inst, 5883);
      // Connects after ~100ms

      new SubscribeTables();
}
vuktfyat

vuktfyat1#

因此,为了整合代码,您的SubscribeTables类应该如下所示:

public class SubscribeTables {
    private NetworkTableInstance instance;

    // Make a constructor to take NetworkTableInstance
    public SubscribeTables(NetworkTableInstance instance) {
        this.instance = instance;
    }

    public void function() {
        // Use the NetworkTableInstance for every function in this Class
        boolean isConnected = instance.isConnected();
    }
}

创建SubscribeTables对象的方法:

SubscribeTables tables = new SubscribeTables(inst);
t1rydlwq

t1rydlwq2#

NetworkTableInstance inst的作用域被限制在main方法的生命周期内,因为你的新类并不知道。如果你仍然想这样做,你有两个选择--但不推荐。
1.将NetworkTableInstance的示例作为构造函数参数传递给SubscribeTables
1.将NetworkTableInstance的示例作为需要在SubscribeTables上调用的方法参数传递给相应的方法

vuv7lop3

vuv7lop33#

可以通过构造函数中的参数或setter方法中的参数提供对象A(类型NetworkTableInstance)到对象B(类型SubscribeTables)的链接。在这两种情况下,SubscribeTables类都应具有类型NetworkTableInstance的字段,以便将构造函数或setter参数中的NetworkTableInstance对象放入该字段。

相关问题