Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 函数体作为方法调用的参数_Java_Function_Ssl - Fatal编程技术网

Java 函数体作为方法调用的参数

Java 函数体作为方法调用的参数,java,function,ssl,Java,Function,Ssl,我正在读一个创建连接并发送SOAP消息的程序。我遇到了一个奇怪的语句,其中包含body的完整函数在方法参数中传递。有人能解释一下吗?请注意,这是一个工作代码 //Open up connection httpsConnection = (HttpsURLConnection) new URL(url).openConnection(); httpsConnection.setHostnameVerifier(new HostnameVerifier() { @Override pub

我正在读一个创建连接并发送SOAP消息的程序。我遇到了一个奇怪的语句,其中包含body的完整函数在方法参数中传递。有人能解释一下吗?请注意,这是一个工作代码

//Open up connection 
httpsConnection = (HttpsURLConnection) new URL(url).openConnection();

httpsConnection.setHostnameVerifier(new HostnameVerifier() {
  @Override
  public boolean verify(String hostname, SSLSession session) {
   return true;
   }
 });

这是一个匿名的内部类。您可以在此处了解更多信息:

匿名类使您的代码更加简洁。它们使您能够同时声明和实例化一个类。它们与本地类类似,只是它们没有名称。如果只需要使用一次本地类,请使用它们

假设此代码是这样编写的:

httpsConnection = (HttpsURLConnection) new URL(url).openConnection();

httpsConnection.setHostnameVerifier(new MyHostnameVerifier());

// another class file

public class MyHostnameVerifier extends HostnameVerifier() {
  @Override
  public boolean verify(String hostname, SSLSession session) {
   return true;
   }
 });

此代码将具有完全相同的功能。还有其他一些细微差别不适用于您的示例,但如果您感兴趣,可以在链接中阅读

这是一个匿名的内部类。感谢chrylis,这是否意味着对象TRUE作为参数传递?不,一个单一用途的类被实例化并传递。