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