Java - 从main调用另一个类的静态方法

时间:2014-05-26 12:43:08

标签: java encryption variable-assignment static-methods

我正在尝试从javax.crypto库实现一个简单的加密/解密,但是我试图从github https://gist.github.com/bricef/2436364上找到的AES类的实现中调用该方法。

public class AES {
  static String IV = "AAAAAAAAAAAAAAAA";

  public static byte[] encrypt(String plainText, String encryptionKey) throws Exception {
    //..code
    return cipher.doFinal(plainText.getBytes("UTF-8"));
  }
}

然后我尝试从另一个类中的main方法调用该方法,并使用类似的实例将其返回值赋给变量;

AES aes = new AES();
byte[] encrypt = aes.encrypt(msg, key);

我得到未处理的异常类型Exception。

我也是这样试过的;

byte[] encrypt = AES.encrypt(msg, key);

如何调用此方法并将返回值赋给变量,然后我可以使用它来执行许多其他很酷的操作?

我知道这个问题很简单但是如何解释你如何在Java中进行这些类型的调用/赋值会很棒。

1 个答案:

答案 0 :(得分:1)

对AES类的调用看起来非常正确,因为它是公共的,您可以正确创建实例,然后在其上调用公共方法。可能由于encrypt方法中的某些问题而导致您的异常发生。请用

包围它
try { 
  AES aes = new AES();
  byte[] encrypt = aes.encrypt(msg, key);
} 
catch(Exception e) { 
   e.printStackTrace(); 
} 

阻止,因为它会为您提供有关损坏内容的准确信息。更好的是,让自己拥有一个带调试器的编程环境,然后在encrypt方法中逐步执行您的程序,以找出问题所在。享受java的乐趣! :)