zoukankan      html  css  js  c++  java
  • Scala 槽点

    require

    def this(name: String, age: Int) = {
      this()
      require(name != null && !name.isEmpty, "name")
      require(age > 0, "illegal age")
      Preconditions.checkArgument(name != null && !name.isEmpty, "name required")  // 使用 guava 工具类,这行编译不过... 改写为下两种调用方式可通过
    // Preconditions.checkArgument(name != null && !name.isEmpty, "name required".asInstanceOf[Any])  
    // Preconditions.checkArgument(name != null && !name.isEmpty, "name required", null)
      setAge(age)
      setName(name)
    }
    
    

    什么鬼

    1. require

      • 函数签名: final def require(requirement: Boolean, message: => Any) ,注意第二个参数类型是一个函数
      • 以上栗子中调用了两次 require 函数,生成两个匿名对象...
    2. ambiguous reference to overloaded definition

      • 编译错误信息:
        Error:(44, 21) ambiguous reference to overloaded definition,
        both method checkArgument in object Preconditions of type (x$1: Boolean, x$2: String, x$3: Object*)Unit
        and  method checkArgument in object Preconditions of type (x$1: Boolean, x$2: Any)Unit
        match argument types (Boolean,String)
              Preconditions.checkArgument(name != null && !name.isEmpty, "name required")
        
  • 相关阅读:
    Vue
    多线程
    多进程进阶
    CentOS7中安装MySQL
    socket
    回顾
    Hibernate学习一:Hebinate入门以及一些小问题
    struts2学习二:Tomcat的部署目录和访问路径问题
    struts2学习一:hello struts2及struts2环境配置中遇到的问题
    Scanner几个问题与正则简介
  • 原文地址:https://www.cnblogs.com/xsj24/p/11649402.html
Copyright © 2011-2022 走看看