Преобразование Scala varargs в объект Java ... varargs

Применить fastclick к вашему приложению. Там вы найдете файл .js и документацию. Самый короткий (jQuery) способ реализации этого будет:

$(function() {
    FastClick.attach(document.body);
});

Если вы не используете jQuery, вы можете выбрать другой способ:

if ('addEventListener' in document) {
    document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
    }, false);
}

Сообщите мне если вам нужна дополнительная помощь!

Это прямая ссылка к файлу fastclick.js

13
задан oxbow_lakes 26 February 2010 в 22:56
поделиться

2 ответа

Нашел ответ:

log.info(msg,  params.map(_.asInstanceOf[AnyRef]) : _*)

Следующий код возвращает Seq [AnyRef] => params.map (_. AsInstanceOf [AnyRef]), а часть ': _ *' сообщает компилятору передать его как varargs

Результат:

"Started on 127.0.0.1:1234"

Кроме того, это решение имеет дело как с AnyVals, так и с AnyRefs

20
ответ дан 1 December 2019 в 20:00
поделиться

@Galder - есть более простой способ, который позволяет избежать громоздкого вызова asInstanceOf[Object]:

def info(msg: => String, params: Any*) =  log.info( msg.format(params : _*) );

В scala 2.7 функция format(args : Any*) неявно включена через RichString (и имеет неоптимальную реализацию с точки зрения отражения без видимых причин), в то время как в 2. 8 метод включен через StringLike и реализован через прямой вызов String.format(String, Object ...)

Я понимаю, что причина, по которой Java не содержит такого метода, заключается в том, что он имеет импликацию, что "каждая строка является строкой формата", что не так. К счастью, я готов отказаться от логической корректности ради более удобного класса, который предоставляет scala!

12
ответ дан 1 December 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: