Как бы исправить ошибку синтаксиса, вставив '}', чтобы завершить блок - PullRequest
0 голосов
/ 25 марта 2019

Я получаю ошибку с моим кодом.Я создаю простую пользовательскую функцию для 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;
    }
  }

Ответы [ 3 ]

3 голосов
/ 25 марта 2019

Вам нужно поставить один } до того, как вы начнете метод public static String encrypt(String dot, SecretKey secretKey), т.е. после того, как закончится цикл for

1 голос
/ 25 марта 2019

Вы должны поместить один { перед методом шифрования, чтобы завершить цикл 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;
  }
}
1 голос
/ 25 марта 2019

Я вижу, что отсутствует } для закрытия класса 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;
  }
}
...