请教一个Java中的问题,下面错误的原因是什么

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,它是一个反射异常,表示正在尝试访问的对象或方法无法访问。