gpt4 book ai didi

java - 如何从主类访问更新的字符串

转载 作者:行者123 更新时间:2023-12-01 22:31:17 24 4
gpt4 key购买 nike

这是sha1哈希函数的代码。我想从 main 函数访问 sb 字符串。我可以访问sb 字符串但未反射(reflect)在 main 函数中。

 import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class sha1 {

/**
* @param args
* @throws NoSuchAlgorithmException
*/
public String sb1;

public void printkey(String convert){

sb1=sha1(convert) ;
System.out.println(sb1);
}


public String sha1(String input) {
StringBuffer sb = new StringBuffer();
sha1 rr= new sha1();
try{

MessageDigest mDigest = MessageDigest.getInstance("SHA1");
byte[] result = mDigest.digest(input.getBytes());

for (int i = 0; i < result.length; i++) {
sb.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));

}

rr.sb1=sb.toString();
System.out.println("\n");
System.out.println(rr.sb1);



}
catch ( NoSuchAlgorithmException nsae ) {
System.out.println(nsae);
}
return sb1;
}

当我从主类访问 sb1 时,它不会给出在 printkey 函数中打印的任何输出。 Printkey 给出了正确的输出。我希望更新的 sb 应该从 main 函数中看到。

public static void main(String[] args) {

sha1 m=new sha1();
System.out.println("\n");
System.out.println(m.sb1);

}

最佳答案

您的问题是您的 sha1 方法正在创建一个新实例并设置该新实例的字符串。因此,原始实例(在 main 方法中创建的实例)的 sb1 永远不会更新。

更改:

sha1 rr= new sha1();
....
rr.sb1=sb.toString();

致:

sb1 = sb.toString();

此外,您似乎没有调用 printkey,它调用您的 sha1 方法。您可能想在主方法中调用它。

关于java - 如何从主类访问更新的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com