java - 当一个类被另外两个类扩展时获取空值

标签 java spring oop inheritance

我正在为一家金融公司提供后端服务。该应用程序是使用 jpos、spring 3.0.5、hibernate 3.6 构建的。该应用程序将在由 jpos 负责的多线程环境中运行。然而,我对应该使用哪种策略来定义一个可以在整个应用程序中访问其属性和数据成员的类感到困惑。

到目前为止我所做的是:

public class MsgHandler 
{

    public Boolean isOffline = true;
    public Boolean isSuccess;
    public Long mobileTxnId;

    setAllData()
    {
        mobileTxnId=1000;
        ..............
    }
}

在这门课中,我基本上放置了在整个过程中经常使用的所有必要数据。所以我扩展了 MsgHandler

public class A extends MsgHandler 
{

    setAllData();
    System.out.println("Mobile Txn Id: "+mobileTxnId) //its printing the values here
    B b=new B();
    b.useData();
}

现在另一个B类也在扩展MsgHandler类,但在B类中我没有获得在A类中设置的mobileTxnId的null

public class B extends MsgHandler 
{
    useData()
    {
        System.out.println("Mobile Txn Id: "+mobileTxnId) //its not printing the  values here
    }
}

为什么会发生这种情况,因为我正在扩展同一个类,但在 A 类中,我得到 mobileTxnId 但在 B 类中,我得到 mobileTxnId 为空值。

mobileTxnId 设为静态是一个很好的做法,即使应用程序要在多线程环境中使用,请建议我

最佳答案

ab不同相同的对象,因此在 a 上调用 setAllData() 对象构造函数也不在 b 对象构造函数中进行调用。

您需要调用

b.setAllData()

使用前

b.useData()

关于java - 当一个类被另外两个类扩展时获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523454/

相关文章:

java - 为什么这个具有基于 java 的配置的 Spring 应用程序不能正常工作

oop - Fortran 构造函数出错

c++ - 彼此组成的类

java - OOP继承问题

java - 阐明不使用泛型

java - “javac”无法识别

java - 获取拒绝值 null spring 验证

java - Log4j,禁用依赖于环境的附加程序

java - 如何在服务类和 util 类之间拆分应用程序功能?

java - Spring boot Resource getFile() 不起作用