精华内容
下载资源
问答
  • java怎么调用接口

    2021-02-26 15:32:01
    抽象类和接口方法特征包括:方法的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的异常。接口是类型转换的前提、是动态调用的保证。实现某一接口就完成了类型的转换(多重继承);动态调用只关心...

    抽象类和接口方法特征包括:方法的名字、参数的数目、参数的类型。不包括:返回类型、参数名字、和抛出的异常。接口是类型转换的前提、是动态调用的保证。实现某一接口就完成了类型的转换(多重继承);动态调用只关心类型,不关心具体类。--------------------------------------------------------------------------------------------------------------------------------------JAVA接口(抽象类)用来声明一个新的类型。JAVA设计师应当主要使用接口和抽象类将软件单位与内部和外部耦合起来。换言之,应当使用JAVA接口和抽象类而不是具体类进行变量的类型声明、参数的类型声明、方法的返回类型声明、以及数据类型的转换等。当然一个更好的做法是仅仅使用接口,而不是抽象类来做上面这些事情。在理想的情况下,一个具体类应当只实现接口和抽象类中声明的方法,而不应当给出多余的方法!接口和抽象类一般作为一个类型等级结构的起点。接口比抽象类更为抽象所以优先使用接口声明抽象类型!--------------------------------------------------------------------------------------------------------------------------------------抽象类和接口抽象类仅提供一个类的部分实现。抽象类可以有实例变量、以及一个或多个构造函数。抽象类可以同时又抽象方法和具体方法。一个抽象类不会有实例,它的构造函数不能被客户端用来创建实例。一个抽象类的构造函数可以被其子类调用,从而使一个抽象类的所有子类可以有一些共同的实现,而不同的子类可以在此基础上有不同的实现。接口比抽象类更为抽象所以有线使用接口声明抽象类!抽象类是用来继承的。(具体类不是用来继承的,“只要有可能不要从具体类继承---SCOTT MERYES”)。抽象类设计原则:1. 抽象类应当拥有尽可能多的代码!(公用方法)。代码集中于抽象的方向。2. 抽象类应当拥有尽可能少的数据!(公共属性)。数据集中于具体的方向。继承复用的使用条件------- PETER COAD条件1. 子类是超类的一个特殊种类而不是超类的一个角色!正确区分“HAS-A”“IS-A”的关系。3. 子类具有扩展超类的责任,而不是置换(OVERRIDE)掉或注销(NULLIFY)掉的责任。4. 只有在分类学角度上有意义时才可以使用继承,不要从具体类继承。接口和抽象类的区别:1. 抽象类可以提供某些方法的实现。如果向抽象类中加入一个新的具体的方法,那么所有的子类一下子就得到了这个方法。接口做不到这一点!(这也许是抽象类的唯一优点)。2. 因JAVA的单根结构限制,只类只能实现一个抽象类类型,而接口类型这无此限制。这使抽象类作为类型定义工具的效能落后于接口。接口是定义混合类型(实现多从继承)的理想工具:用一个3. 从代码重构的角度上讲,将一个具体类重构成一个接口的实现是很容易的。研究好这中间的差别很有用的!

    取消

    评论

    展开全文
  • java如何调用接口方式

    2021-03-07 14:30:46
    这其中的url就是需要调的目标接口地址,URL类是java.net.*下的类,这个不陌生。setRequestMethod("POST");请求方式是有两个值进行选择,一个是GET,一个是POST,选择对应的请求方式setDoOutput(true);setDoInput(true)...

    首先URL restURL = new URL(url);这其中的url就是需要调的目标接口地址,URL类是java.net.*下的类,这个不陌生。

    setRequestMethod("POST");请求方式是有两个值进行选择,一个是GET,一个是POST,选择对应的请求方式

    setDoOutput(true);setDoInput(true);setDoInput()  :  // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认是false;   setDoOutput():   // 设置是否从httpUrlConnection读入,默认情况下是true;

    setAllowUserInteraction();allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。

    下面代码的query是以  属性=值  传输的,若是多个则是 属性=值&属性=值这种形式传递的,传递给服务器,让服务器自己去处理。如何去生成这种形式的呢?最简单最快的方式在这里 Java将Map拼接成“参数=值&参数=值”

    close();创建流进行写入或读取返回值,创建用完后记得关闭流。

    有事需要生成时间戳,可以参考java时间类各种方法及用法,这个里面介绍了各种时间方法获取想要的时间戳

    java如何调用呢?

    package com.lwl.api.provider.demo.test;

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.io.PrintStream;

    import java.net.HttpURLConnection;

    import java.net.URL;

    public class RestUtil {

    public String load(String url,String query) throws Exception

    {

    URL restURL = new URL(url);

    /*

    * 此处的urlConnection对象实际上是根据URL的请求协议(此处是http)生成的URLConnection类 的子类HttpURLConnection

    */

    HttpURLConnection conn = (HttpURLConnection) restURL.openConnection();

    //请求方式

    conn.setRequestMethod("POST");

    //设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true);

    conn.setDoOutput(true);

    //allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。

    conn.setAllowUserInteraction(false);

    PrintStream ps = new PrintStream(conn.getOutputStream());

    ps.print(query);

    ps.close();

    BufferedReader bReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

    String line,resultStr="";

    while(null != (line=bReader.readLine()))

    {

    resultStr +=line;

    }

    System.out.println("接口调用数据:"+resultStr);

    bReader.close();

    return resultStr;

    }

    public static void main(String []args) {try {

    RestUtil restUtil = new RestUtil();

    String resultString = restUtil.load(

    "http://192.168.10.89:8080/eoffice-restful/resources/sys/oaholiday",

    "floor=first&year=2017&month=9&isLeader=N");

    } catch (Exception e) {

    System.out.print(e.getMessage());

    }

    }

    }

    展开全文
  • Java代码中调用接口

    2021-03-09 14:46:54
    Java代码中调用接口代码中调用第三方接口封装一个工具类我在使用时遇到一个问题使用tomcat服务器使用SpringBoot内嵌的Tomcat同时也要注意list大小也有限制 代码中调用第三方接口封装一个工具类 json转换 <...

    代码中调用第三方接口封装一个工具类

    json转换

    <dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>fastjson</artifactId>
    			<version>1.2.28</version>
    		</dependency>
    

    工具类

    package hs.ex.dyxx.ex.util;
    
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    import java.io.IOException;
    import java.net.URI;
    import java.util.Map;
    
    public class RequestUtil {
    
        /**
         * 带参数的get请求
         * @param url
         * @param param
         * @return String
         */
        public static String doGet(String url, Map<String, String> param) {
            // 创建Httpclient对象
            CloseableHttpClient httpclient = HttpClients.createDefault();
    
            String resultString = "";
            CloseableHttpResponse response = null;
            try {
                // 创建uri
                URIBuilder builder = new URIBuilder(url);
                if (param != null) {
                    for (String key : param.keySet()) {
                        builder.addParameter(key, param.get(key));
                    }
                }
                URI uri = builder.build();
                // 创建http GET请求
                HttpGet httpGet = new HttpGet(uri);
                // 执行请求
                response = httpclient.execute(httpGet);
                // 判断返回状态是否为200
                if (response.getStatusLine().getStatusCode() == 200) {
                    resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (response != null) {
                        response.close();
                    }
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return resultString;
        }
    
        /**
         * 不带参数的get请求
         * @param url
         * @return String
         */
        public static String doGet(String url) {
            return doGet(url, null);
        }
    
    /**
    	 * 带参数的post请求
    	 * @param url
    	 * @param param
    	 * @return String
    	 */
    	public static String doPost(String url, Map<String, String> param) {
    		// 创建Httpclient对象
    		CloseableHttpClient httpClient = HttpClients.createDefault();
    		CloseableHttpResponse response = null;
    		String resultString = "";
    		try {
    			// 创建Http Post请求
    			HttpPost httpPost = new HttpPost(url);
    			// 创建参数列表
    			if (param != null) {
    				List<NameValuePair> paramList = new ArrayList<>();
    				for (String key : param.keySet()) {
    					paramList.add(new BasicNameValuePair(key, param.get(key)));
    				}
    				// 模拟表单
    				UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
    				httpPost.setEntity(entity);
    			}
    			// 执行http请求
    			response = httpClient.execute(httpPost);
    			resultString = EntityUtils.toString(response.getEntity(), "utf-8");
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				response.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		return resultString;
    	}
     
    	/**
    	 * 不带参数的post请求
    	 * @param url
    	 * @return String
    	 */
    	public static String doPost(String url) {
    		return doPost(url, null);
    	}
    	
    	/**
    	 * 传送json类型的post请求
    	 * @param url
    	 * @param json
    	 * @return String
    	 */
    	public static String doPostJson(String url, String json) {
    		// 创建Httpclient对象
    		CloseableHttpClient httpClient = HttpClients.createDefault();
    		CloseableHttpResponse response = null;
    		String resultString = "";
    		try {
    			// 创建Http Post请求
    			HttpPost httpPost = new HttpPost(url);
    			// 创建请求内容
    			StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
    			httpPost.setEntity(entity);
    			// 执行http请求
    			response = httpClient.execute(httpPost);
    			resultString = EntityUtils.toString(response.getEntity(), "utf-8");
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				response.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		return resultString;
    	}
    }
    
    

    我在使用时遇到一个问题

    当调用post接口时如果参数过大数据过多时调用接口失败,管道断开。当时的解决办法是把数据分开上传。网上也有一些解决办法。

    使用tomcat服务器

    修改Tomcat server.xml配置,取消Post请求大小限制

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="19443"
      maxPostSize="-1"/>
    

    使用SpringBoot内嵌的Tomcat

    post请求默认参数限制最大为2M,等于-1就是解除限制。

    server.tomcat.max-http-post-size=-1
    

    同时也要注意list大小也有限制

    SpringMVC 接收List/数组大小默认限制为256个,可以在全局处理类@ControlerAdvice标注的全局Controller异常处理器类中添加如下代码

    @InitBinder
    protected void initBinder(WebDataBinder binder) {
        binder.setAutoGrowNestedPaths(true);
        binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
    }
    
    展开全文
  • java 接口怎么调用

    千次阅读 2021-02-12 08:58:08
    一个类实现了某一个接口就可以调用接口中的方法。接口可以理解为一种能力,例如:每种动物都有叫的能力,但是每种动物的叫声都不一样,叫的能力就可以定义为一个接口。一、创建项目和包打开Eclipse,依次选择File→...

    327bcfce61ddd6b5dc72ee0b83b2bb2d.png

    一个类实现了某一个接口就可以调用接口中的方法。接口可以理解为一种能力,例如:每种动物都有叫的能力,但是每种动物的叫声都不一样,叫的能力就可以定义为一个接口。

    1debe94392438bcfdfb30f0aa274f0a3.png

    一、创建项目和包

    打开Eclipse,依次选择File→New→Project。在弹出的Select a wizard窗口中,选择Java Project 后,点击下一步。

    cdda24a24bd41d7f2db4ef3d5e4ad09c.png

    输入项目名称后点击下一步(建议遵循命名规则)

    0855a7d087bfbcc5ad917a1f6409e46f.png

    鼠标右击新建的项目,依次选择New→Package,完成包命名后,点击下一步。

    d86df7cce2072cbacb521c68c9910310.png

    二、创建接口

    鼠标右击包,依次选择New→Interface。

    2e3e2919d3a58a1fd9f1f39fe4d237ca.png

    将接口命名为ShoutAbility后,点击完成。(喊叫能力接口)

    3e365f741c27180eabfeb55268f9f76c.png

    如下图,定义接口shout()方法(保持良好习惯,加上注释),并按下Ctrl +S 保存。

    af4a0f9d3ff5eaf7c892e6e24582e858.png

    三、创建接口实现类

    右击包,依次选择New→Class,并将类命名为AoShout(嗷嗷叫)。

    9c6ee4def3fff45e605654b9936735a3.png

    如下图,将AoShout 实现ShoutAbility接口,实现接口的关键字为 implements,并重写接口的shout方法。按下Ctrl+S 保存。

    f6793c49bacab4828028fa2b4219d4ea.png

    四、调用接口方法

    创建一个Bird类,并定义一个带参构造方法,用接口类型定义参数。

    定义Bird 的 shout() 方法时,即可用接口变量调用接口方法。

    按下Ctrl +S 保存。

    62f0a7d3509e392446c2165c4b19c8e9.png

    创建一个测试类,用接口的实现类AoShout创建一个接口对象,再用创建的bridShout对象创建一个鸟对象。

    这时候调用鸟类的方法,就会执行调用到接口的方法,通过接口找到实现类的方法嗷嗷叫。

    ee49219f14f3c4f23981b63f1b4cd9ca.png

    注意事项

    接口的方法都是抽象方法,方法必须在实现类中实现;一个类可以有多种接口(能力);类名必须首字母大写。

    php中文网,大量的免费Java入门教程,欢迎在线学习!

    展开全文
  • 一个抽象接口,有很多实现类...对于接口调用方法情况,如果直接按ctrl点进去查看源码,往往只能看到接口里方法的声明,无法获知具体调用的是哪个实现类的方法,特别是实现类非常多的情况,虽然这是Java多态的体现,...
  • java调用url接口

    2021-03-18 11:23:26
    很多简单的接口就是直接一个URl的形式,怎么调用?HttpClient httpclient=null;PostMethod post=null;try{httpclient = new HttpClient();post = new PostMethod(SendUrl);//设置编码方式post.getParams()....
  • 调用接口方法两种情况:1:你已经实例化了这个接口2:定义一个方法,给他的参数就是这个接口的类型。这样就可以编译成功了。但是同样,你给编译器一个假象。编译器也还给你一个假象。就是没结果,彼此彼此所以看出:...
  • java 接口调用问题

    2021-03-03 12:22:11
    使用fastjson,jackjson等工具也是...建一个Batch类,里面有字段batchNo,List detail;public class Batch{private String batchNo;private List detail;//下面省略Get和Set方法……}public class Detail{private S...
  • I have the following scenario in Java. Let's say I have an interface, and two classes that implement this interface. As follows:public interface myInterface {public String printStuff();}public class A...
  • 等等,你可能有过编写EJB的经验或对RMI有所了解,如果你使用过Spring框架的远程调用,你可能你各种远程调用方法就比较清楚和了解,可是你未必尝试过一切都是自己构造来实现远程调用,这里我们尝试同过编写一个简单的...
  • java 如何调用接口

    2021-03-04 00:10:36
    在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适,所以,问题来了,java如何调用接口?很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口...
  • 1、使用 restTemplate.exchange 调用 http 接口代码如下: public void getHttpTest(String id,String name){ String url="https://www.baidu.com/"; HttpHeaders headers = new HttpHeaders(); headers....
  • 调用对方http接口步骤:URL url = new URL(path);1、打开和url之间的连接HttpURLConnection conn = (HttpURLConnection) url.openConnection();2、设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn...
  • java如何调用接口其实对于java调用接口进行获取对方服务器的数据在开发中特别常见,然而一些常用的基础的知识总是掌握不牢,让人容易忘记,写下来闲的时候看看,比回想总会好一些。总体而言,一些东西知识点一直复制...
  • 从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API,我们需要做的是用编程的方法通过Web来调用这个应用程序,即我们要编写客户端调用这个接口。很多情况下,服务提供方会提供...
  • java接口静态方法

    2021-02-12 14:26:12
    概述Java8带来了一些全新的特性,包括lambda表达式...静态方法接口中的静态方法和类中定义的静态方法一样,不属于特定对象,所以它们不是实现接口的api的一部分,必须使用InterfaceName.staticMethod来调用它们。为...
  • Java中socket接口调用

    2021-02-28 09:03:33
    最近一个项目中接口通讯这一块主要是调用银联系统的socket接口,我方是客户端,即发送请求接收返回报文的一方。在贴代码之前,还是要了解一下关于socket的基础知识。Socket的基本概念1.建立连接当需要建立网络连接...
  • java调用webservice接口 几种方法

    千次阅读 2021-02-25 19:00:27
    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天搜索到了非常好的 webservice provider列表...
  • Java8 - 接口默认方法

    2021-03-15 15:35:53
    首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类,目前的 java 8之前的集合框架没有foreach方法,通常能想到的解决办法是在JDK给...
  • java调用webservice摘自其它:webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天搜索到了非常好的 ...
  • 获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法。Object invoke(Object obj,Object ... args):obj表示调用底层方法的对象,后面的args表示传递的实际参数。如果底层方法是静态的,那么可以...
  • webservice的 发布一般都是运用WSDL(web service descriptive language)文件的款式来发布的,在WSDL文件里边,包含这个webservice暴露在外面可供运用的接口。今日查找到了非常好的 webservice provider列表...
  • webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。我们也可以在以下网站找到许多 webservice provider列表...
  • //接口的抽象方法 public abstract void method1(); public abstract void method2(); //public abstract可以省略不写 } //-----------------接口的实现类 package demo05; //接口的实现类 public class ...
  • java通过url调用远程接口返回json数据,有用户名和密码验证,转自 https://blog.csdn.net/wanglong1990421/article/details/78815856Java请求远程URLJava请求一个URL。获取网站返回的数据。转自...
  • java之远程接口调用

    2021-02-12 16:00:02
    } } 7、调用另一项目中的借口(TestController.java) packagecom.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestBody;importorg.spring...
  • 原来博客写的是用httpclient的方式调用,比较麻烦,cxf的方式又有局限性,其实cxf的方式加上如下这种也可以很方便myeclipse可以直接在自己的项目中 new一个web service client , 然后把对方给的wsdl文件保存到...
  • java反射调用dubbo接口

    2021-02-26 12:51:08
    三个项目:a 、b、c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一个异步的job项目,用来接收mq,异步处理,管理task等。方案:1.a项目...
  • 技术简介JNI,全称java nativeinterface,是java语言与其他类型语言交互的接口。下图是Sun站点上对JNI的基本结构的描述。JNI是Java语言的本地编程接口,是J2SDK的一部分。在java程序中,我们可以通过JNI实现一些用...
  • 今天用restTemplate调用别人的接口,传递参数时,调用了下面的方法。private HttpEntity> getEntity(T... entity) {HttpHeaders requestHeaders = new HttpHeaders();List mediaTypes = new ArrayList();media...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 742,197
精华内容 296,878
关键字:

java方法里面怎么调用接口

java 订阅