[英]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.