【发布时间】:2019-08-15 16:59:31
【问题描述】:
我的代码不断出错。我正在为 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;
}
}
【问题讨论】:
-
发布的代码有 4 个左括号
{,但只有 3 个右括号}。错误消息非常有用,它会告诉您一切:您缺少右括号。 -
当前您的
encrypt方法在您的DES方法中。也许您只需要在for循环之后添加一个}? -
@OHGODSPIDERS 是的,我知道,但问题是无论我放在哪里 } 都不起作用。
-
@sara 在 for 循环关闭 DES 方法之后,您可能会丢失它。问题是您似乎还缺少该方法的返回语句。
-
你需要学会理解代码块在哪里以及如何开始和结束。
标签: java neo4j user-defined-functions