내가 GSON의 .fronJson를 사용하고 허용되지 않습니다하지만 난GSON 오류 : 반사는</p> <pre><code>List<MyPattern> MyPattern = gson.fromJson(jsonReader, new TypeToken<List<MyPattern>>() {}.getType()); </code></pre> <p>, 개인 java.lang.String의 java.util.regex.Pattern.pattern
아래의 오류 메시지를 받았습니다java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on private java.lang.String java.util.regex.Pattern.pattern at com.google.appengine.runtime.Request.process-ea4f755134111bd0(Request.java) at java.lang.reflect.Field.setAccessible(Field.java:197) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:157)
내 수업은 MyPattern입니다.
public class MyPattern {
public String category;
public Pattern regex;
public void setCategory(String category) {
this.category = category;
}
public String getCategory() {
return category;
}
public void setRegex(String regex) {
this.regex = Pattern.compile(regex);
}
public Pattern getRegex() {
return regex;
}
@Override
public String toString() {
return "key: " + this.category + ", pattern: " + this.regex;
}
}
이 오류는 Pattern.compile()이 원인입니까? 내가 public Pattern regex;
public void setRegex(String regex) { this.regex = regex; }
와 public String regex;
에 변경 작동합니다. 그러나 왜 패턴이 작동하지 않는지 궁금하고 그것을 해결하고 패턴을 계속 사용하는 방법이 있습니다.
https://stackoverflow.com/questions/32993474/reflection-is-not-allowed-on-private -static-final-int-java-util-bitset-address-b – Kevin
@Kevin 그렇습니다.하지만 문제를 해결하는 방법을 찾지 못했습니다. MyPattern 클래스의 모든 필드는 이미 공개되어 있습니다. – Shuishui
잘 사용하고있는 JSON을 포함 할 수 있습니까? 나는 이것을 지역적으로 시도했으나 정상적으로 작동했다. – Kevin