精华内容
下载资源
问答
  • method类型
    千次阅读
    2021-08-27 22:32:53

    常见的Http Method有哪些,使用场景分别是==

    http1.0定义了三种:
              GET: 向服务器获取资源,比如常见的查询请求 
              POST: 向服务器提交数据而发送的请求 
              Head: 和get类似,返回的响应中没有具体的内容,用于获取报头

    http1.1定义了六种:
              PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新 
              PATCH:PUT 方法的补充,更新指定资源的部分数据 
              DELETE:用于删除指定的资源 
              OPTIONS: 获取服务器支持的HTTP请求方法,服务器性能、跨域检查等 
              CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返 回给用户,网页开发基本不用这个方法,如果是http代理就会使用这个,让服务器代理用户去访问其他网页, 类似中介 
              TRACE:回显服务器收到的请求,主要用于测试或诊断

    更多相关内容
  • go获取http请求的method类型 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(r.Method + "\n")) }) http.ListenAndServe("127.0.0.1:9090", nil) GET、POST、PUT、DELETE…...

    go获取http请求的method类型

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    	w.Write([]byte(r.Method + "\n"))
    })
    http.ListenAndServe("127.0.0.1:9090", nil)
    

    GET、POST、PUT、DELETE…

    展开全文
  • Java Method

    千次阅读 2020-03-04 18:10:13
    本文介绍了 Java 中 Method 类的相关内容。。。


    Method

    • 使用 Java 的反射机制获得的指定类中指定方法的对象;
    • Method 类的对象可以是类方法,也可以是实例方法;
    • 通过反射调用类的私有方法时,要先在这个私有方法对应的 Method 对象上调用 setAccessible(true) 来取消对这个方法的访问检查,再调用 invoke() 方法来执行这个私有方法;
    • java.lang.reflect.Method,详见:Class Method

    1. 获得方法对象

    • public Object invoke (Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, nvocationTargetException
    • obj:调用方法的对象;
    • args:为指定方法传递的参数值,是一个可变参数;
    • invoke() 方法的返回值为动态调用指定方法后的实际返回值;

    2. 主要方法

    类型方法说明
    ClassgetDeclaringClass()得到一个 Class 对象
    StringgetName()获得 Method 类对象所表示的方法的名字
    Class[ ]getParameterTypes()获得 Method 类对象表示的方法中的参数类型
    Objectinvoke(Object o, Object… args)调用 Method 类对象表示的方法,相当于对象 o 用参数 args 调用该方法

    3. Java 实例

    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    class Computer {//计算机类
        private double frequency = 2.0;
        private int RAM = 4;
        private int HardDisk = 500;
        private String CPU = "Intel";
    
        public Computer()//无参构造方法
        {
        }
    
        public Computer(double frequency, int RAM, int HardDisk, String CPU)//有参构造方法
        {
            this.frequency = frequency;
            this.RAM = RAM;
            this.HardDisk = HardDisk;
            this.CPU = CPU;
        }
    
        //为了能实现复制,下面的方法需按Bean 规则写,即setter或getter
        public void setFrequency(double frequency) {
            this.frequency = frequency;
        }
    
        public double getFrequency() {
            return frequency;
        }
    
        public void setRAM(int RAM) {
            this.RAM = RAM;
        }
    
        public int getRAM() {
            return RAM;
        }
    
        public void setHardDisk(int HardDisk) {
            this.HardDisk = HardDisk;
        }
    
        public int getHardDisk() {
            return HardDisk;
        }
    
        public void setCPU(String CPU) {
            this.CPU = CPU;
        }
    
        public String getCPU() {
            return CPU;
        }
    
        public String toString() {
            String info = "主频:" + frequency + "MHz 内存:" + RAM + "GB 硬盘:" + HardDisk + "GB CPU:" + CPU;
            return info;
        }
    }
    
    public class test {
        public static void main(String args[]) throws Exception {
            //获得一个表示Computer 类的Class 类对象
            Class obj = Class.forName("Computer");
            //获取Computer 类中的构造方法
            Constructor constructor[] = obj.getConstructors();
            System.out.println("Computer 类中的构造方法:");
            for (Constructor con : constructor)//将构造方法输出
                System.out.println(con.toString());
            System.out.println();
            //获取Computer 类中的所有域
            Field field[] = obj.getDeclaredFields();
            System.out.println("Computer 类中的域:");
            for (Field f : field)
                System.out.println(f.toString());
            System.out.println();
            //获取Computer 类中的所有方法
            Method method[] = obj.getDeclaredMethods();
            System.out.println("Computer 类中的方法:");
            for (Method m : method)
                System.out.println(m);
            System.out.println();
            Computer myComputer = new Computer(2.4, 4, 450, "Intel");//声明一个对象
            Computer aComputer = (Computer) duplicate(myComputer);//复制一个对象
            System.out.println("复制后的对象:");
            System.out.println(aComputer.toString());//输出复制后的对象
        }
    
        private static Object duplicate(Object source) throws Exception {
            //由对象source 获得对应的Class 类对象
            Class classObj = source.getClass();
            //获得source 类对象所在类中的所有域
            Field[] sourceFields = classObj.getDeclaredFields();
            //利用classObj 调用方法newInstance()获得一个新对象
            Object target = classObj.newInstance();
            //将source 对象的域值赋给新对象对应的域
            for (Field sourceField : sourceFields) {
                sourceField.setAccessible(true);//设置域可访问
                //赋值给新对象对应的域值
                sourceField.set(target, sourceField.get(source));
            }
            return target;
        }
    }
    /*
    输出
    Computer 类中的构造方法:
    public Computer()
    public Computer(double,int,int,java.lang.String)
    
    Computer 类中的域:
    private double Computer.frequency
    private int Computer.RAM
    private int Computer.HardDisk
    private java.lang.String Computer.CPU
    
    Computer 类中的方法:
    public java.lang.String Computer.toString()
    public int Computer.getHardDisk()
    public int Computer.getRAM()
    public void Computer.setCPU(java.lang.String)
    public void Computer.setHardDisk(int)
    public void Computer.setRAM(int)
    public void Computer.setFrequency(double)
    public java.lang.String Computer.getCPU()
    public double Computer.getFrequency()
    
    复制后的对象:
    主频:2.4MHz 内存:4GB 硬盘:450GB CPU:Intel
     */
    
    展开全文
  • Golang method 方法详解

    千次阅读 多人点赞 2021-04-13 20:05:22
    在之前的文章 Golang 复合类型 中已经介绍过结构体的概念,本文将介绍 method 的用法。 基本语法 接收器 方法的使用和函数非常相似,都是通过包装一段代码块来实现某种可复用的功能,不同的是,函数的输入通过入参来...

    前言

    作为一种面向对象编程语言,Golang 和其他的 OOP 语言在面向对象的实现上有较大的区别,他没有 class 的概念,而是通过 结构体(struct)-方法(method)-接口(interface) 的组合使用来实现面向对象的思想。在之前的文章 Golang 复合类型 中已经介绍过结构体,本文将介绍 method 的用法。

    基本语法

    接收器

    方法的使用和函数非常相似,都是通过包装一段代码块来实现某种可复用的功能,不同的是,函数的输入通过入参来定义,而对于方法,声明时需要在方法名之前声明一个带类型的参数作为方法的接收器(receiver),这个附加的参数会将该函数附加到这种类型上,从而成为一种专用于这种数据类型的方法,有点类似其他语言中 class 的成员函数。

    注意:方法的接收器必须为命名类型,不能为基础类型,也不可以为接口,如果需要使用基础类型作为接收器,需要使用 type 重新定义一种类型,如:

    type testint int  //  使用 type 定义一种 testint 类型
    func (a testint) test(b int) int{  // test 方法为 testint 类型的方法
      	c := int(a) + b		// 类型转换
    	return c
    }
    
    func main() {
    	var a testint = 2
    	fmt.Println(a.test(3)) // 5
    }
    

    声明和调用

    下面用一段代码来说明方法和函数在声明和调用上的区别:

    type Point struct{ 
    	X float64
    	Y float64
    }
    
    type Path []Point
    
    // 函数
    func Distance(p, q Point) float64 {
        return math.Hypot(q.X-p.X, q.Y-p.Y)
    }
    
    // Point 类型的方法
    func (p Point) Distance(q Point) float64 {
        return math.Hypot(q.X-p.X, q.Y-p.Y)
    }
    
    // Path 类型的方法
    func (path Path) Distance() float64 {
    	sum := 0.0
    	for i := range path {
    		if i > 0 {
    			sum += path[i-1].Distance(path[i])
    		}
    	}
    	return sum
    }
    
    p := Point{1, 2}
    q := Point{4, 6}
    perim := Path{
    	{1, 1},
    	{5, 1},
    	{5, 4},
    	{1, 1},
    }
    
    fmt.Println(Distance(p, q)) // "5", function call
    fmt.Println(p.Distance(q))  // "5", method call Point.Distance
    fmt.Println(perim.Distance()) // "12", method call Path.Distance
    

    事实上,方法也是一种函数,只是把接收器作为第一个入参而已。

    fmt.Printf("%T\n", Point.Distance)		//func(Point, Point) float64
    fmt.Printf("%T\n", p.Distance)			// func(Point) float64
    

    选择器

    形如 p.Distance(q) p.X 这种表达式叫做选择器(selector),选择器会根据对象 p 的类型来选择对应的方法或者结构体字段,比如说 p.Distance(q) 会调用求点距离的方法而不是求三角形周长的方法。

    因此,某个结构体的方法不能和结构体的字段重名,其内部的方法也都必须有唯一的方法名,比如对于 Point 结构体,如果定义一个名为 X 的方法,则会编译错误。但是不同的类型可以有同样的方法名。

    基于指针对象的方法

    由于方法也是一种函数,所以我们很容易理解方法也是通过值传递的方式来拷贝参数值,因此,和函数中的处理一样,如果我们想要在方法内对一个参数进行改变,则必须使用指针对象来作为方法的接收器,如:

    func (p *Point) ScaleBy(factor float64) {
    	p.X *= factor
    	p.Y *= factor
    }
    
    r := &Point{1, 2}
    r.ScaleBy(2)
    fmt.Println(*r) // "{2, 4}"
    
    // 注意,由于临时变量的内存地址无法获取,所以不能使用下面这种写法
    Point{1, 2}.ScaleBy(2) // compile error: can't take address of Point literal
    

    这个方法的名字是 (*Point).ScaleBy,这是一个 (*Point) 类型的方法而不是 Point 类型的方法。在实际使用中,因为通常不会对一个结构体类型仅有只读操作,所以基本上都会用指针来作为方法的接收器。

    一个很容易出错的点在于,我们需要使用一个类型的指针来作为接收器,而不能使用指针类型本身来作为接收器,举个例子:

    func (p *Point) f1()   // 正确
    
    type PP *Point
    func (pp PP) f2()   // 编译错误
    

    f2 这种写法会报编译错误

    invalid receiver type PP (PP is a pointer type)
    

    通过内嵌结构体扩展方法

    在之前的文章中,介绍过内嵌结构体的使用,通过内嵌结构体,可以在外层结构体中直接使用内层结构体的字段,而上文我们又说了形如 p.Distance(q) p.X 都是对象 p 的选择器,所以我们自然会想到,外层结构体也可以使用内嵌结构体的方法,类似于其他 OOP 语言中的继承思想。如下:

    import "image/color"
    
    type Point struct{ 
    	X float64
    	Y float64 
    }
    
    type ColoredPoint struct {
    	Point
    	Color color.RGBA
    }
    
    red := color.RGBA{255, 0, 0, 255}
    blue := color.RGBA{0, 0, 255, 255}
    var p = ColoredPoint{Point{1, 1}, red}
    var q = ColoredPoint{Point{5, 4}, blue}
    fmt.Println(p.Distance(q.Point)) // "5"
    

    可以看到,即使 ColoredPoint 类型没有声明 Distance 方法,也可以直接当作 Point 类型方法的接收器来使用。类比于其他的 OOP 语言,可以将 Point 看做基类,将 ColoredPoint 看做继承它的子类来理解。

    但是必须强调以下两点:

    1. 继承只是一种理解方法,和继承思想最大的不同是,ColoredPoint 只是拥有 Point 成员并且可以使用它的字段和方法,但是 ColoredPoint 并不是 Point 类型,因此,ColoredPoint 虽然可以作为 Point 方法的接收器,但是并不能作为 Point 类型的参数使用,下列写法会报错。
    p.Distance(q) // compile error: cannot use q (ColoredPoint) as Point
    
    1. 只有内嵌结构体可以实现上述用法,如果是将 Point 类型的对象作为 ColorPoint 的字段,则不成立,以下写法会报错。
    type ColoredPoint struct {
    	point Point
    	Color color.RGBA
    }
    
    fmt.Println(p.Distance(q.Point))
    // 报错
    // p.Distance undefined (type ColoredPoint has no field or method Distance)
    // q.Point undefined (type ColoredPoint has no field or method Point, but does have point)
    

    方法值

    跟函数一样,方法也可以作为方法值使用,这种情况下调用时就不再需要指定接收器,如下:

    p := Point{1, 2}
    q := Point{4, 6}
    distanceFromP := p.Distance // method value
    fmt.Println(distanceFromP(q)) // "5"
    
    展开全文
  • Golang reflect.method 使用方法

    千次阅读 2020-10-16 14:15:55
    这个问题第一次出现在看6.824的labrpc时候,其中使用到了reflect.method。当时对反射的理解还只是停留在 reflect.type 和 reflect.value,所以在一些关键的地方读的并不是很懂。去查阅资料的时候惊奇的发现除了官方...
  • Method类及其用法

    万次阅读 2017-11-13 16:30:50
    一、Method类 代表类中的一个方法的定义,一个Method由修饰符,返回值,方法名称,参数列表组合而成。 二、Method提供的方法 1、getName();获得方法名。 2、getModifiers();获得修饰符。 3、getReturnTypes();...
  • 关于 HTTP 常用 Method

    万次阅读 2018-08-02 02:01:57
    GET 方法的数据类型只允许是 ASCII 字符,所以说传递 二进制 文件就不可以用 GET 方法了哦 c) 可以保存书签 当我们访问某一个网站的频率特别高的时候,肯定添加到书签,那其实书签就是依靠 GET 方法来保存的 ...
  • 如上图一,虽然请求返回200,但是没有数据返回,而且请求方式为:Request Method:OPTIONS,并不是post请求方式.为什么会出现这种方式,原来是错误的头信息导致: contentType: 'application/json;charset=utf-8' 将上面...
  • 问题概述 在项目中使用到的JDK是1.8的版本,项目开发过程中遇到的一个Java类型推断的问题 :“ Non-static method cannot be referenced from a static context ” ,“ Error:(89, 45) java: 不兼容的类型: 推断...
  • 关于java中method.invoked 传入类型不一样的问题前言测试 前言 最近在尝试写着自己的一些框架,其中遇到了一个比较麻烦的问题,就是mvc中,获取前端传来的参数后,需要辨别类型,一一对应传给method调用invoke方法...
  • Method类简介

    千次阅读 2012-06-29 09:36:58
    【1】Method类简介 Java反射技术的一个基本应用之一就是在运行时期间动态地调用方法。要动态地调用方法,首先要获得方法本身。步骤如下:  1.获得Class对象  2.调用Class对象的getMethod(String, Class[])...
  • Java反射之Method对象详解

    千次阅读 2021-09-03 13:38:15
    使用Java反射,可以在运行时检查一个方法的信息以及在运行期调用这个方法,通过使用java.lang.reflect.Method类就可以实现上述功能。 获取Method对象 ...如果你知道你要调用方法的具体参数类型,你就可以直接通过
  • Java反射中Method类invoke方法的用法

    千次阅读 2021-02-26 14:41:54
    import java.lang.reflect.Method;public class InvokeTester {public int add(int param1, int param2) {return param1 + param2;}public String echo(String mesg) {return "echo" + mesg;}public static void mai...
  • runtime Method

    千次阅读 2016-01-12 17:49:09
    原文出自:标哥的技术博客 前言本篇文章只讲Method的特性及相关方法,不讲Method ...Method类型Method类型是一个objc_method结构体指针,而结构体objc_method有三个成员:/// An opaque type that represents a meth
  • Method中获取完整类名和方法名

    千次阅读 2021-03-06 23:11:45
    需求假设:假设在包com.zhoutao.controller下有方法getKey()方法,在JavaEE中,通过AOP获得该方法的的对象method,现在通过该对象的getName方法,仅仅只能获得getKey的结果,现在我需要的是...查找官方API并未发现此方法...
  • Java反射08 : 成员方法Method学习示例

    千次阅读 2018-03-04 14:36:42
    超级通道: Java泛型学习系列-绪论 java.lang.reflect.Method类提供了用于获取和操作成员方法的静态...如何通过Method获取成员方法的相关信息如:方法名、修饰符、参数个数、参数类型、参数化类型、异常类、可变...
  • Java method方法讲解大全

    千次阅读 2021-10-07 10:51:12
    方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 注意: 方法必须先创建才可以使用,该过程成为方法定义 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程...
  • 上一期是对java的分支结构进行...这一期是对方法method的介绍,它也被称之为函数,它的基本格式为:方法的修饰符 方法的返回值 方法的名字 ( 参数列表 ) { 代码/方法体 }1、方法1.1 概述Java语言中的“方法”(Metho...
  • Python中function和method

    万次阅读 2018-02-03 00:55:02
    这两个概念已经有很多人解释过了,从本文的『参考』中就可以看出来。...method通常是面向对象的概念,即method是属于一个类或类的对象的。method是与类或类的对象相关的函数。 下面讲一下我对这两个概念的更具
  • java中的方法method

    千次阅读 2021-02-26 11:10:27
    一个普通的方法是由访问控制符、返回值类型、方法名、方法参数列表和方法体组成,如: public void driveCar(方法参数列表){ 方法体}。 void表示该方法无返回值,当有返回值时,可用返回值的类型 代替void,一个...
  • Spring 5 MethodParameter 源码注释

    千次阅读 2020-09-05 15:12:55
    * Helper class that encapsulates the specification of a method parameter, i.e. a {@link Method} * or {@link Constructor} plus a parameter index and a nested type index for a declared generic * type...
  • OpenSSL中那些方法之ssl_method_st

    千次阅读 2018-05-03 21:47:23
    在ssl_locl.h中定义了整个协议栈结构的三个非常重要的结构体ssl_ctx_st,ssl_st以及ssl_method_st。本次主要分析结构体变量ssl_method_st,因此其他的结构暂且不表。
  • 1.列标题右键弹出选项菜单 2.选择Customize columns选项,Collection选项选择Miscellaneous 3.Field Name选择:RequestMethod
  • invalid method declaration

    万次阅读 2018-07-11 23:46:42
    invalid method declaration; return type required public showMyLove() { ^ 1 error方法声明无效; 需要返回类型public showMyLove(){
  • Hystrix: fallback method wasn't found

    千次阅读 2019-02-21 14:58:56
    at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) at org.springframework....
  • Java Method getReturnType()方法

    千次阅读 2021-02-25 19:22:09
    Java Method getReturnType()方法java.lang.reflect.Method.getReturnType()方法返回一个Class对象,该对象表示此Method对象表示的方法的正式返回类型。1 语法public Class> getReturnType()2 参数无3 返回值该...
  • springMVC源码分析--HandlerMethod

    万次阅读 2016-12-21 19:09:50
    在之前的博客中我们已经接触过HandlerMethod,接下来我们简单介绍一下HandlerMethod,简单来说HandlerMethod包含的信息包括类、方法和参数的一个信息类,通过其两个构造函数我们就可以了解其功能,对应着springMVC的...
  • Method详解

    万次阅读 2016-10-25 20:59:44
    java反射的Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。
  • java反射之Method的invoke方法实现

    万次阅读 多人点赞 2018-07-29 00:31:48
    在框架中经常会会用到method.invoke()方法,用来执行某个的对象的目标方法。以前写代码用到反射时,总是获取先获取Method,然后传入对应的Class实例对象执行方法。然而前段时间研究invoke方法时,发现invoke方法居然...
  • OC与Swift中的实例方法(instance method) 和 类方法(class method)的比较

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,122,712
精华内容 449,084
关键字:

method类型