Я всегда думаю об аннотациях как некоторый индикатор , что класс способен к, или , как он взаимодействует с другими.
конфигурация XML Spring, с другой стороны, мне просто, что, конфигурация
, Например, информация о IP и порте прокси, определенно входит в XML-файл, это - конфигурация во время выполнения.
Используя @Autowire
, @Element
для указания на платформу, что сделать с классом, хорошее использование аннотаций.
Помещение URL в @Webservice
аннотация является плохим стилем.
, Но это - просто мое мнение. Путь между взаимодействием и конфигурацией не всегда свободен.
Я считаю, что значение по умолчанию ] asType
поведение можно найти в: org.codehaus.groovy.runtime.DefaultGroovyMethods.java
org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.java [1125879 Начиная с].
Начиная с. DefaultGroovyMethods
довольно легко проследить поведение asType
для определенного типа объекта и запрошенной комбинации типов.
Согласно тому, что Рубен уже указал, конечный результат:
Set collection = new HashSet().asType(List)
is
Set collection = new ArrayList( new HashSet() )
Метод asType
распознает, что вам нужен список
] и поскольку HashSet
является Коллекцией
, он просто использует конструктор ArrayList
, который принимает коллекцию
.
Поскольку для чисел 1 он преобразует Integer
в Number
, а затем вызывает метод shortValue
.
Я не понимал, что там так много логики при преобразовании таких ссылок / значений, моя искренняя благодарность Рубену за указание на источник, я сделаю немало сообщений в блогах по этой теме.