繁体   English   中英

我将如何修复语法错误插入 '}' 以完成块

[英]How would I fix the Syntax error insert '}' to complete block

我的代码一直出错。 我正在为 Neo4j 创建一个简单的用户定义函数。 谁能帮我这个? 无论我尝试什么,我都会收到以下错误:

语法错误:插入“}”以完成块。

当我插入}它给了我一个错误,说我的代码“无法访问”,当我添加一个括号使其可以访问时,它会带我回到第一个错误,它只是循环。

这是我的代码:

public class Join {
  static Cipher cipher;
  @UserFunction
  @Description("example.DES ,, Decryption of any input values.")
  public byte[] DES(@Name("set1") List < String > strings1) {
    for (int i = 0; i < strings1.size(); i++) {
      String dot;
      dot = strings1.get(i);
      KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
      keyGenerator.init(128);
      SecretKey secretKey = keyGenerator.generateKey();
      cipher = Cipher.getInstance("AES");
      String encryptedText = encrypt(dot, secretKey);
      System.out.println("Encrypted Text After Encryption: " + encryptedText);
    }
    public static String encrypt(String dot, SecretKey secretKey)
    throws Exception {
      byte[] plainTextByte = dot.getBytes();
      cipher.init(Cipher.ENCRYPT_MODE, secretKey);
      byte[] encryptedByte = cipher.doFinal(plainTextByte);
      Base64.Encoder encoder = Base64.getEncoder();
      String encryptedText = encoder.encodeToString(encryptedByte);
      return encryptedText;
    }
  }

您需要在开始public static String encrypt(String dot, SecretKey secretKey)方法之前放置一个} ,即在您的 for 循环结束之后

我可以看到缺少一个}来关闭类Join ,总是尝试格式化代码以查看此问题。

结果代码是:

public class Join {
  static Cipher cipher;
  @UserFunction
  @Description("example.DES ,, Decryption of any input values.")
  public byte[] DES(@Name("set1") List < String > strings1) {
    for (int i = 0; i < strings1.size(); i++) {
      String dot;
      dot = strings1.get(i);
      KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
      keyGenerator.init(128);
      SecretKey secretKey = keyGenerator.generateKey();
      cipher = Cipher.getInstance("AES");
      String encryptedText = encrypt(dot, secretKey);
      System.out.println("Encrypted Text After Encryption: " + encryptedText);
    }
  }
  public static String encrypt(String dot, SecretKey secretKey) throws Exception {
    byte[] plainTextByte = dot.getBytes();
    cipher.init(Cipher.ENCRYPT_MODE, secretKey);
    byte[] encryptedByte = cipher.doFinal(plainTextByte);
    Base64.Encoder encoder = Base64.getEncoder();
    String encryptedText = encoder.encodeToString(encryptedByte);
    return encryptedText;
  }
}

您必须在 encrypt 方法之前放置一个{以结束 for 循环,如下所示:

public class Join {
  static Cipher cipher;
  @UserFunction
  @Description("example.DES ,, Decryption of any input values.")
  public byte[] DES(@Name("set1") List < String > strings1) {
    for (int i = 0; i < strings1.size(); i++) {
      String dot;
      dot = strings1.get(i);
      KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
      keyGenerator.init(128);
      SecretKey secretKey = keyGenerator.generateKey();
      cipher = Cipher.getInstance("AES");
      String encryptedText = encrypt(dot, secretKey);
      System.out.println("Encrypted Text After Encryption: " + encryptedText);
    }
  }
  public static String encrypt(String dot, SecretKey secretKey)
  throws Exception {
    byte[] plainTextByte = dot.getBytes();
    cipher.init(Cipher.ENCRYPT_MODE, secretKey);
    byte[] encryptedByte = cipher.doFinal(plainTextByte);
    Base64.Encoder encoder = Base64.getEncoder();
    String encryptedText = encoder.encodeToString(encryptedByte);
    return encryptedText;
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM