java reflection vs scala reflection

« картинки и свежие анекдоты | чат

java reflection vs scala reflection

Так-с, ну что ж, пора и по онтопику пошутить. Как говорит товарищ Lazytech, "nobody can understand..." и далее по тексту.

java reflection (scala syntax):

    def createInstance[DTO <: AnyRef](c: Class[DTO]): DTO = c.newInstance


scala reflection:

    def createInstance[DTO <: AnyRef : TypeTag](c: Class[DTO]): DTO = {
        import reflect.runtime.{universe => u}
        val m = u.runtimeMirror(getClass.getClassLoader)
        val c = u.typeOf[DTO].typeSymbol.asClass
        // Находим конструктор без аргументов среди overloaded-альтернатив:
        val cc = u.typeOf[DTO].declaration(u.nme.CONSTRUCTOR).asTerm.alternatives.
                map(_.asMethod).filter(m => m.paramss.size == 1 && m.paramss.head.isEmpty).head
        val cm = m.reflectClass(c)
        val ccm = cm.reflectConstructor(cc)
        ccm().asInstanceOf[DTO]
    }

Ещё интересное на этом сайте:

Просто пиздец какой-то
Мода 2013 Москва-КаУказ
Будни девушки-патологоанатома
Дом родной
А Ваня все шутит
Оригинально
Взрыв в Техасе
Анекдоты и картинки #8692095
Взрыв в Техасе (5 фото + 4 видео)
Макияж...
Анекдоты и картинки #8692092
Анекдоты и картинки #8692091
Анекдоты и картинки #8692090
Натаниэль Болдуин не согласен!
Один апрельский 2010г день в Абхазии
Весомый ответ
Вечная проблема в пробке
Охотники «11» приводят ГИБДД в чувство
Цирк уехал, клоуны остались
Домашний хамелеон Йоши
« все анекдоты и картинки
Рейтинг@Mail.ru