我是你一一哥
2017-08-18 09:58
采纳率: 54.2%
浏览 1.7k
已采纳

数组问题,作为参数时的写法问题

TrustManager[] array = { new MyTrustManager() };

正确:sslContext.init(kmf.getKeyManagers(), { new MyTrustManager() }, null);
错误:sslContext.init(kmf.getKeyManagers(), array, null);

问题就处在这个array的写法上,难道{}不能被认为是数组吗

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • hongyu83916 2017-08-18 15:03
    已采纳

    数组的声明,赋值。就三种;
    1. int[] a=int[length]; 然后赋值,然后才使用
    2.int[] a={1,2,3};
    3,int[] a=new int[]{1,2,3};
    并且{}只有给数组初始化赋值的时候才可以用,其他地方{}除了类体方法体使用,
    java并没赋予{}其他用处。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 鼠小 2017-08-18 10:17

    题主正确错误是不是写反了,,

    我试了一下确实有错,,原因我感觉这可能是一种不对的语法吧,,

    编译原理会通过自动机对程序进行解析,这种写法可能不符合规矩。,,,不知道有不有大神给出权威的解释,我仅一家之言。

    评论
    解决 无用
    打赏 举报
  • suqing335 2017-08-18 10:23

    不是,数组的写法是

    TrustManager[] array = new TrustManager[3];

    评论
    解决 无用
    打赏 举报
  • MikeDDT009 2017-08-18 11:27

    这是上次直接论坛回复别人处理这个问题的原因,主要就是语法错误,你直接理解为那种写法只能再初始化的时候使用就行了,看看错误提示
    图片说明

    评论
    解决 无用
    打赏 举报
  • 痛并快乐的码农 2017-08-18 15:07

    图片说明

    评论
    解决 无用
    打赏 举报
  • liu270335264 2017-08-18 15:35

    是不是传入的参数类型不匹配,TrustManager[]与MyTrustManager() ,子父类关系吧!
    方法sslContext.init(),需要传入的数组类型不是MyTrustManager而不能是TrustManager

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题