在java中在两个类之间传递变量值

在java中在两个类之间传递变量值,java,Java,我想在类ServerThread public class ServerThread extends Thread { /* Some Code Omitted Here */ public void run() { String sDataFromPOS=""; //Get Some Value in sDataFromPOS byte[] bSendToPOS = SAXHandler.ParseXM

我想在类
ServerThread

public class ServerThread extends Thread {

    /* Some Code Omitted Here */

    public void run() {
            String sDataFromPOS="";
            //Get Some Value in sDataFromPOS
            byte[] bSendToPOS = SAXHandler.ParseXMLToString(sDataFromPOS.toString().substring(2));
    }
}

public class SAXHandler extends DefaultHandler {

    static String sTerminalId = "";
    static String sTransactionId = "";

    public static byte[] ParseXMLToString(String sXMLData) throws Throwable {
        /* Do Some Operation on String sXMLData & extarct value of sTerminalId & sTransactionId*/
    }
}
我试过的是

SAXHandler.sTerminalId
将为我获取值,但仅在一次运行时,如果再次运行,它将为我提供以前的值
还有别的选择吗?我正在处理敏感数据,所以不想弄乱我的代码

这就是静态不好的原因。使变量成为实例变量,并为每次运行创建一个新的对象实例(为了简单起见,我们忽略封装):


这就是为什么静力学不好。使变量成为实例变量,并为每次运行创建一个新的对象实例(为了简单起见,我们忽略封装):


在处理之前再次初始化变量。。。像

public static byte[] ParseXMLToString(String sXMLData) throws Throwable {

     sTerminalId = "";
     sTransactionId = "";

    }

在处理之前再次初始化变量。。。像

public static byte[] ParseXMLToString(String sXMLData) throws Throwable {

     sTerminalId = "";
     sTransactionId = "";

    }

创建对象并使用它如果您不希望变量的值被覆盖,请不要将其设置为静态!特别是因为您正在使用多线程,如果您想保持ParseXMLToString方法的静态,请返回包含byte[],sTerminalId和sTransactionId的对象method@AbdullahShaikh:我有多个变量要通过这里显示的方法返回,只有两个。字节[]返回值将自动删除。一旦我得到我的问题的答案:)创建对象并使用它如果你不想覆盖变量的值,不要让它们成为静态的!特别是因为您正在使用多线程,如果您想保持ParseXMLToString方法的静态,请返回包含byte[],sTerminalId和sTransactionId的对象method@AbdullahShaikh:我有多个变量要通过这里显示的方法返回,只有两个。字节[]返回值将自动删除。一旦我得到了我的问题的答案:)这是一种最合法的方式吗?是的,这是正确的,而且有效。。。。但是,最好使用“关于职位的噪音”建议的方法。这是一种最合法的方法吗?是的,这是正确的,而且有效。。。。但最好使用noise在about postSo中建议的方法,如果创建类的对象并在线程内调用非静态方法可以吗?与静态方法相比,它有什么优势吗?使用静态意味着所有tread实例共享相同的变量,我认为这不是您想要的。通常,线程应该共享尽可能少的状态。在线程内创建对象是很常见的,所以不用担心。那个么,在线程内创建类的对象并调用非静态方法可以吗?与静态方法相比,它有什么优势吗?使用静态意味着所有tread实例共享相同的变量,我认为这不是您想要的。通常,线程应该共享尽可能少的状态。在线程内创建对象非常常见,所以不用担心。