Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make public com.itfanr.IDCard.ResultInfo() accessible: module Swing does not "exports com.itfanr.IDCard" to module com.google.gson
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:361)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:301)
at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:189)
at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:182)
at com.google.gson@2.8.7/com.google.gson.internal.reflect.UnsafeReflectionAccessor.makeAccessible(UnsafeReflectionAccessor.java:44)
at com.google.gson@2.8.7/com.google.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:103)
at com.google.gson@2.8.7/com.google.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:85)
at com.google.gson@2.8.7/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:101)
at com.google.gson@2.8.7/com.google.gson.Gson.getAdapter(Gson.java:458)
at com.google.gson@2.8.7/com.google.gson.Gson.fromJson(Gson.java:931)
at com.google.gson@2.8.7/com.google.gson.Gson.fromJson(Gson.java:897)
at com.google.gson@2.8.7/com.google.gson.Gson.fromJson(Gson.java:846)
at com.google.gson@2.8.7/com.google.gson.Gson.fromJson(Gson.java:817)
at Swing/com.itfanr.IDCard.Test.main(Test.java:14)
Test.java:14行 是Java Swing界面吗,能否贴出相关代码
com.itfanr.IDCard.ResultInfo() 方法是什么权限呢?设置为public再试试。
exports com.itfanr.IDCard" to module com.google.gson把你的代码发出来看看n
是解析JSON文件的问题么
package com.itfanr.IDCard;
public class ResultInfo {
private int resultcode ;
private String reason ;
public Person getResult() {
return result;
}
public void setResult(Person result) {
this.result = result;
}
private Person result ;
private int error_code ;
public int getResultcode() {
return resultcode;
}
public void setResultcode(int resultcode) {
this.resultcode = resultcode;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public int getError_code() {
return error_code;
}
public void setError_code(int error_code) {
this.error_code = error_code;
}
public String toString(){
return "ResutltInfo-> "+ "resultcode: "+ this.getResultcode()
+" reason: "+this.getReason()+"\n"+"result: "+ this.getResult()
+"\n"+"error_code: "+ this.getError_code() ;
}
}
package com.itfanr.IDCard;
public class Person {
private String area ;
private String sex ;
private String birthday ;
private String verify;
public String getVerify() {
return verify;
}
public void setVerify(String verify) {
this.verify = verify;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String toString(){
return "Person info-> "+ "area: "+ this.getArea()
+ " birthday: " + this.getBirthday()
+" sex: "+ this.getSex() + " verify: "+this.getVerify();
}
}
package com.itfanr.IDCard;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL ;
import java.net.HttpURLConnection ;
public class Search {
private String key ;
public Search(String key ) {
this.key =key ;
}
public String seatchID(String id){
String url = "http://apis.juhe.cn/idcard/index?key="+this.key+ "&cardno="+ id ;
URL urlNet = null ;
InputStream is = null ;
ByteArrayOutputStream bao = null ;
String result = null ;
try {
urlNet = new URL(url);
try {
HttpURLConnection conn = (HttpURLConnection)urlNet.openConnection() ;
conn.setReadTimeout(5*1000 );
conn.setRequestMethod("GET");
is = conn.getInputStream() ;
int len = -1 ;
byte[] buf = new byte[128] ;
bao = new ByteArrayOutputStream() ;
while ((len = is.read(buf))!=-1){
bao.write(buf,0,len);
}
bao.flush();
result = new String(bao.toByteArray()) ;
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}finally {
if (is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bao!=null){
try {
bao.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result ;
}
}
package com.itfanr.IDCard;
import com.google.gson.Gson;
public class Test {
public static void main(String args[]){
Search s = new Search("your_key" ) ;
String result = s.seatchID("340881200011230634");
Gson gson = new Gson();
ResultInfo resultInfo = gson.fromJson(result, ResultInfo.class);
System.out.println(resultInfo);
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
这个错误是因为在模块Swing中没有将com.itfanr.IDCard导出到模块com.google.gson中,所以com.google.gson无法访问com.itfanr.IDCard.ResultInfo类。这个错误是InaccessibleObjectException,它是一个反射异常,表示正在尝试访问的对象或方法无法访问。