Subject to the number of cunstructor arguments, how do I create new instance from class name?

Scala:

def instantiate(className:String)(args:Any*): AnyRef = {
	    val clazz = Class.forName(className)
		val constructor = clazz.getConstructors()(0)
		val constNum = constructor.getParameterTypes().length
		val workArgs:Array[AnyRef] = new Array(constNum)
		var count=0
		for(arg <- args if(count < workArgs.length)){
		  workArgs(count) = arg match{
		    case i:AnyRef => i
		    case i:Int => new java.lang.Integer(i)
		    case i:Long => new java.lang.Long(i)
		    case i:Float => new java.lang.Float(i)
		    case i:Double => new java.lang.Double(i)
		    case i:Boolean => new java.lang.Boolean(i)
		    case i:Char => new java.lang.Character(i)
		    case i:Byte => new java.lang.Byte(i)
		    case i:Short => new java.lang.Short(i)
		    case _ => arg.asInstanceOf[AnyRef]
		  }
		  count = count + 1
		}
		return constructor.newInstance(workArgs:_*).asInstanceOf[AnyRef]
	}

or

you can write recursion instead of for loop below:

private def instantiate(className:String)(args:Any*): AnyRef = {
    println(className)
	    val clazz = Class.forName(className)
		val constructor = clazz.getConstructors()(0)
		val constNum = clazz.getConstructors()(0).getParameterTypes().length
		val workArgs:Array[AnyRef] = new Array(constNum)
    
		def checkArg(count:Int) {
			if(count<workArgs.length&&count<args.length){
			  checkArg(count+1)
			  workArgs(count) = args(count) match{
			  	case i:AnyRef => i
			  	case i:Int => new java.lang.Integer(i)
			  	case i:Long => new java.lang.Long(i)
			  	case i:Float => new java.lang.Float(i)
			  	case i:Double => new java.lang.Double(i)
			  	case i:Boolean => new java.lang.Boolean(i)
			  	case i:Char => new java.lang.Character(i)
			  	case i:Byte => new java.lang.Byte(i)
			  	case i:Short => new java.lang.Short(i)
			  	case _ => args(count).asInstanceOf[AnyRef]
			  }
		  } 
		}
		
		checkArg(0)
		return constructor.newInstance(workArgs:_*).asInstanceOf[AnyRef]
	}

I would like to get your feedback