TrustManager[] array = { new MyTrustManager() };
正确:sslContext.init(kmf.getKeyManagers(), { new MyTrustManager() }, null);
错误:sslContext.init(kmf.getKeyManagers(), array, null);
问题就处在这个array的写法上,难道{}不能被认为是数组吗
数组的声明,赋值。就三种;
1. int[] a=int[length]; 然后赋值,然后才使用
2.int[] a={1,2,3};
3,int[] a=new int[]{1,2,3};
并且{}只有给数组初始化赋值的时候才可以用,其他地方{}除了类体方法体使用,
java并没赋予{}其他用处。
题主正确错误是不是写反了,,
我试了一下确实有错,,原因我感觉这可能是一种不对的语法吧,,
编译原理会通过自动机对程序进行解析,这种写法可能不符合规矩。,,,不知道有不有大神给出权威的解释,我仅一家之言。
不是,数组的写法是
TrustManager[] array = new TrustManager[3];
这是上次直接论坛回复别人处理这个问题的原因,主要就是语法错误,你直接理解为那种写法只能再初始化的时候使用就行了,看看错误提示
是不是传入的参数类型不匹配,TrustManager[]与MyTrustManager() ,子父类关系吧!
方法sslContext.init(),需要传入的数组类型不是MyTrustManager而不能是TrustManager