在其他文件的 运行 中使用来自另一个文件方法的 java 变量

using java variable from another file method in run of other file

我有两个这样的文件:

Client.java:

public class Client implements Runnable {
//code

   public void run() {
   //more code
       Crypt cls = new Crypt();
       cls.decrypt(request,key,type);
       //print "val" here.
   //more code
   }
}

然后 Crypt.java 文件是这样的:

public class Crypt{

    public static byte[] decrypt(byte[] val, byte[] key, int type)
    {

        //val assigned here
        // the following is used to assign it.
       val[length - len - 1] ^= key[8 + (((byte)(key[8 + b] + key[8 + a])) & 0xFF)];


      return val;
    }   

}

在 Crypt.java 文件 运行 之后,我需要能够再次访问 Client.java 文件中的 val 变量。

我试过 cls.valcls.decrypt.val 但我不知道如何让它工作。

感谢您的帮助!

因为你的 decrypt() 方法 returns 一个值,当你调用它时将它赋值给一个变量。

byte[] result = cls.decrypt(request, key, type);

然后您的 result 变量就是您想要的值,在 Client.java 中并准备好使用。

您在 class Crypt 中的 dycrypt() 方法是 Crypt class 的 static 成员。所以你不需要在 Client class 中创建 Crypt class 的实例,比如 -

Crypt cls = new Crypt();
cls.decrypt(request,key,type);  

您可以使用 class 名称调用 decrypt() 方法并将 returns 存储到 byte[] 数组中 -

byte[] vals = Crypt.decrypt(request, key, type); 

然后使用 for loop/for-each 循环你可以打印 vals 数组 -

for(byte each : vals){
   System.out.println(each);
}

只需将dectypt的return值赋给一个变量即可使用。

byte[] res = cls.decrypt(request,key,type);