精华内容
下载资源
问答
  • 通过查找相关的资料发现Okhttp传递本质是把数据转换成对应的json数据格式后端通过特定的对象模型转换为需要的数据格式类型 如下是后端需要的数据类型 { "name": "king", "code":...

    最近项目业务需要通过接口给后台通过post方式提交复杂的格式数据,但是发现现有的网络请求工具 OkHttpUtils无法满足现在的业务需求。通过查找相关的资料发现Okhttp传递本质是把数据转换成对应的json数据格式后端通过特定的对象模型转换为需要的数据格式类型

    如下是后端需要的数据类型

    {
      "name": "king",
      "code": "2019",
      "mobile": "138*********",
      "menu_name": ["设置","添加","修改"],
      "city_name": ["北京","天津","上海"],
      "IsDelete": 0
    }

    可以发现上面的参数menu_name和city_name是数组类型的参数;

    解决思路

    1.把上面的参数对象写成javaBean类称之为ParamBean;

    2.通过gson把ParamBean转成json字符串

    String param = new Gson().toJson(ParamBean);

    完整的方法实现如下

     /**
         * @param userDetailParam 请求参数
         * @param url             地址
         */
     public static void postRequestByObject( Object paramBean, String url) {
    
            String param = new Gson().toJson(paramBean);
            OkHttpClient client = OkHttpUtils.getInstance().getOkHttpClient();
            RequestBody body = RequestBody.create(MediaType.parse("application/json"), param);
            Request request = new Request.Builder()
                    .url(url)
                    .post(body)
                    .build();
    
            client.newCall(request)
                    .enqueue(new Callback() {
                        @Override
                        public void onFailure(final Call call, final IOException e) {
                            
                        }
    
                        @Override
                        public void onResponse(final Call call, final Response response){
                                              });
                        }
                    });
        }

     

    展开全文
  • Java 获取泛型对象参数类型

    千次阅读 2020-03-01 13:48:28
    由于类型擦除,java 中的泛型对象在运行时是不知道自己类型参数的类型的。 但有几种特殊情况,能够获取泛型对象的参数类型: 1、类中有 class 信息(类中有一个 Class 字段) 2、父类中有 class 信息(父类是泛型类...


    由于类型擦除,java 中的泛型对象在运行时是不知道自己类型参数的类型的。

    但有几种特殊情况,能够获取泛型对象的参数类型:

    1、类中有 class 信息(类中有一个 Class 字段)
    2、父类中有 class 信息(父类是泛型类,并指定了参数类型)
    3、持有者中有 class 信息(是一个类的 Field、Method)

    一、类中有 class 信息

    类声明:

    static class A1<T> {
        public Class<T> mClass;
    
        public A1(Class<T> aClass) {
            mClass = aClass;
        }
    }
    

    使用:

    A1<String> a1 = new A1<>(String.class);
    System.out.println(a1.mClass);   
    

    输出:

    class java.lang.String
    

    二、父类中有 class 信息

    2.1 子类

    类声明:

    static class A2 extends A2Parent<String> {
    }
    
    static class A2Parent<T> {
    }
    

    使用:

    A2 a2 = new A2();
    printClass(a2);
    
    public static void printClass(Object o) {
        System.out.println();
        format("o: ", o);
        format("class: ", o.getClass());
        format("superClass: ", o.getClass().getSuperclass());
        format("genericSuperClass: ", o.getClass().getGenericSuperclass());
        format("genericSuperClass typeArgument: ", ((ParameterizedType) o.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
    }
    

    输出:

    o:                                  A2@28a418fc
    class:                              class A2
    superClass:                         class A2Parent
    genericSuperClass:                  A2Parent<java.lang.String>
    genericSuperClass typeArgument:     class java.lang.String   
    

    2.2 匿名子类

    使用:

    A2Parent<String> parent = new A2Parent<String>() {
    };
    printClass(parent);
    

    输出:

    o:                                  $1@5305068a
    class:                              $1
    superClass:                         A2Parent
    genericSuperClass:                  A2Parent<java.lang.String>
    genericSuperClass typeArgument:     class java.lang.String                            
    

    三、持有者中有 class 信息

    类声明:

    static class A3<T> {
    }
    
    static class A3User {
        A3<String> a3 = new A3<>();
    }
    

    使用:

    A3User a3User = new A3User();
    try {
        Field field = FieldUtils.getField(a3User.getClass(), "a3");
        System.out.println(((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]);
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    输出:

    class java.lang.String
    
    展开全文
  • 对象类型参数(将对象做为参数)

    千次阅读 2014-04-14 11:01:54
    对象属于引用数据类型,引用数据类型所传递的值为该对象的地址。当把一个对象作为参数传递给方法时,其实是把对象的地址传递给了该方法的参数。 将对象作为参数来传递实际上体现了现身对象的设计理念,它把相关的...
    对象属于引用数据类型,引用数据类型所传递的值为该对象的地址。当把一个对象作为参数传递给方法时,其实是把对象的地址传递给了该方法的参数。
    将对象作为参数来传递实际上体现了现身对象的设计理念,它把相关的数据通过这种方式进行了很好的封装,这样数据可以很容易地被传递,并且对数据的整体操作也很方便。

    import java.util.Scanner;

    //A类存放两个加数成员
    class A{
    int a, b;
    }
    //B类用来计算a,b的和并返回结果
    class B{
    public int Plus(A tt){ //tt为A类的对象,但并没有为其开辟内存,而是接收了实参aa对象地址
    return tt.a+tt.b; //返回a+b的值
    }
    }
    public class Dm{
    public static void main(String[] args){
    A aa = new A(); //创建一个属于A类的对象aa;
    B bb = new B(); //创建一个属于B类的对象bb;
    Scanner input = new Scanner(System.in);

    System.out.printf("请输入a的值:");
    aa.a = input.nextInt();
    System.out.printf("请输入b的值:");
    aa.b = input.nextInt();
    //将对象做为实参进行传递
    System.out.print("a + b等于:" + bb.Plus(aa)); //注意实参aa为A类的对象

    }
    }

    /*--------------------

    请输入a的值:123
    请输入b的值:456
    a + b等于:579

    --------------------*/



    展开全文
  • 用简单类型作为参数就是把参数个数和类型写死,改动影响大,如果使用对象传参,就很灵活,但传递对象的效率会差一点,这两种方式该如何取舍?
  • 使用对象数组作为参数,只是将对象作为一个数组元素,其引用方法与基本数据类型的数组完全相同。但针对对象数组中的单个元素来讲,它又具有对象有属性和方法。 import java.util.Scanner; //学生类class Student{ ...
    使用对象数组作为参数,只是将对象作为一个数组元素,其引用方法与基本数据类型的数组完全相同。但针对对象数组中的单个元素来讲,它又具有对象有属性和方法。

    import java.util.Scanner;

    //学生类
    class Student{
    int age;
    }

    //平均年龄
    class Age{
    public int avg_Age(Student[] st){

    int avgage = 0; //平均年龄
    int all = 0; //学生总年龄
    int count = 0; //学生计数

    for(int i=0; i<st.length; i++){
    all += st[i].age;
    count++;
    }
    avgage = all/count;
    return avgage;
    }
    }
    public class Dm{
    public static void main(String[] args){

    Student[] stu = new Student[5]; //定义包含五个元素的学生对象数组(注意并没有为其分配空间)
    Age test = new Age();
    Scanner input = new Scanner(System.in);
    for(int i=0; i<5; i++){
    System.out.print("请输入第"+(i+1)+"位学生的年龄:");
    stu[i] = new Student(); //实例化(为其开辟内存空间)
    stu[i].age = input.nextInt();
    }
    //调用方法,传递对象数组
    int avgage = test.avg_Age(stu);//注意这里实参为学生对象数组
    System.out.println("这5名学生的平均年龄为:"+avgage+"岁");
    }
    }
    /*----------------------
    请输入第1位学生的年龄:8
    请输入第2位学生的年龄:12
    请输入第3位学生的年龄:19
    请输入第4位学生的年龄:24
    请输入第5位学生的年龄:69
    这5名学生的平均年龄为:26岁
    -----------------------*/

    展开全文
  • url后参数拼接对象类型与获取方式

    千次阅读 2019-03-25 14:26:15
    获取方式参数值方式(常用的话可封装到js里用的时候引用然后调方法): //获取url带过来的参数,如下代码是获取url问号后面的字符串 var query = window.location.search; //因为参数中包括有中...
  • 在我们工作中,有时候接口要接收很多参数,然后转化为对象,能不能直接在controller方法中直接接收对象参数呢? 答案是可以的,只要前端传过来的参数名跟对象的属性一一对应的json格式就可以,同时必须引入json解析...
  • uni.navigateTo传递对象类型参数

    万次阅读 2020-03-10 18:50:21
    editItem='+encodeURIComponent(JSON.stringify(editItem))}) } 跳转页面代码:(这里的option会识别传入参数类型为数组) onLoad(option){ const editItem = JSON.parse(decodeURIComponent(option.editItem));...
  • 今天在使用OpenFeign时发现当传递参数对象类型时,接受到的参数为null。 解决的方法很简单,在参数前面加上@RequestBody即可 @PostMapping("/account/update") public CommonResult update(@RequestBody TOrder ...
  • 泛型其实指得就是参数类型,使得代码可以适应多种类型。像容器,List< T >,大量使用了泛型 它的主要目的之一就是用来指定容器要持有什么类型对象 泛型只能只能代表引用类型,不能是原始类型,原始类型...
  • java中将对象作为参数的本质

    千次阅读 2009-04-23 10:31:00
    面试时碰到过许多关于java方法中传递...传递对象类型参数,可以改变对象变量的实例域值. c.传递对象类型参数,不可以改变引用地址. 经典示例:交换两个引用类型变量(失败) package com.webm;public class Test {
  • 一、pojo类型参数绑定 实现方式: 1、在controller方法的形参中添加HttpServletRequest对象参数,通过request接收查询条件参数 @RequestMapping("/queryItems") public ModelAndView queryItems...
  • mybatis框架规定Criteria 类型是查询条件子句类型 Criterion类型是查询条件类型 Criteria extends GeneratedCirteria ... criteria 类型集合对象,criteria对象中的各个Criterion类型条件元素之间的逻辑关系...
  • 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。 引用传递:也称为传地址。方法调用时,实际参数的引用(地址...传值---传递基本数据类型参数 package w
  • c++ 对象作为参数,指针作为参数,引用作为参数
  • 在开发过程中,后台难免会接收到各种各样的参数类型,比如对象,单个参数,List集合类型,数组类型,等等,如果你是后端开发者,在没有前端接口请求的情况下,该怎么测试呢? 一、接受List类型的复杂参数 1、列子一...
  • c# 对象类型、对象总结

    千次阅读 2017-05-20 02:16:29
    基本数据类型(值类型)变量传递时,将自己复制一份ref关键字值类型的变量不能完全满足要求时,可以使用ref关键字将值类型变量按照引用方式传递,使得一个方法能够在传递一个参数时,又能将该参数修改后再次返回。...
  • * 获取某一个字段上面的泛型参数数组,典型的就是获取List对象里面是啥参数 *  * @param f * @return */ public static Class[] getParameterizedType(Field f) { // 获取f字段的通用类型 Type fc = f....
  • java中传递参数的两种方式(int(基本类型),int[](对象类型)): http://blog.csdn.net/maoyeqiu/article/details/49250339
  • Oracle Object type 对象类型

    万次阅读 2013-08-05 12:17:11
    Oracle Object type 对象类型 一、概述 Oracle对象类型是Oracle面向对象程序设计的体现,它封装了数据结构和用于操纵这些数据结构的过程和函数。 1、对象类型的组成 对象类型由两部分组成——对象类型头和对象类型...
  • 最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好,特别是当构造函数带参数的时候。 MSDN上给出的例子十分复杂,网上的帖子则一般都说很简单...
  • axis2怎样生成这种格式的WSDL![图片说明](https://img-ask.csdn.net/upload/201609/09/1473415406_463899.png)
  • blob类型对象转为file类型对象

    万次阅读 2019-08-01 19:38:42
    今天楼主遇到一个问题,显示js解压缩文件,然后将解压出来的文件上传到服务器,接口要求传file类型 ...利用File Api讲blob转成File对象 其实我google找了一圈只有 File => Blob,没人写怎么用Blob => Fi...
  • PostMan传递对象参数

    千次阅读 2020-06-29 14:44:12
    首先要在接收参数对象前加上@...再在PoseTMan的Header里配置在这样的参数(注:请求类型和请求路径需与方法对应) 切换到Body的Tab上,选择raw,将格式改成json,在下边就可以填写你想传递的对象了 单击send ...
  • SpringMVC 使用对象接收参数

    千次阅读 2016-04-19 14:34:16
    今天使用对象形式接收参数的时候,不是提示400就是提示415,各种郁闷,之前自己也遇到过但是记不起来了。花了点时间,总算解决了,还是赶紧mark一下吧。 问题: 1 页面ajax请求提示400; 2 ajax提示415; 解决...
  • 上传MultipartFile类型jar包,反射解析jar包 获取方法详情,实体类属性或方法体参数为List(数组)时,获取List集合的泛型类型数组的对象类型直接上代码:(方法体做了简化,其中的Class genericType为泛型类型),有问题或者...
  • SpringMvc参数接收boolean类型参数问题

    千次阅读 2020-03-14 13:42:36
    在开发项目过程中,发现形参对象中的boolean类型的字段isXxxx始终无法被接收, 通过查询资料发现,boolean类型参数应当避免使用is开头进行命名,因为该类型参数的set方法会自动命名为is+字段名,如果字段名中是...
  • 我用RestTemplate想两个参数,一个是自己写的Java类,一个是基本类型 请求的Controller ``` @RequestMapping("/buy") public int buy(@RequestBody GoodsDetail goodsDetail,Integer buyCount){ ...
  • 前言:在向上抽取功能时可能会有需要获取到实现接口的实际泛型参数类型这样的需求,分享一下自己实现的方法。 一、Java 代码 直接上代码,代码上有注释,对API做了相应的解释。 public BasicAction(){ try { ...
  • 关于Java对象作为参数传递是传值还是传引用的问题

    万次阅读 多人点赞 2016-09-06 22:37:20
    前言 在Java中,当对象作为参数传递时,究竟传递的是对象的值,还是对象的引用,这是一个饱受争议的话题。若传的是值,那么函数接收的只是实参的一个副本,函数对形参的操作并不会对实参产生影响;若传的是引用,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,325,951
精华内容 930,380
关键字:

对象类型的参数