2013-08-21 2 views
0

: 나는 관찰다음 그루비 선언에 차이점은 무엇 그루비 생성자와 콩 초기화 성능

def valuesMap = [:] 

// method 1 
def myBeanInstance1 = new MyBean() 
myBeanInstance1.properties = valuesMap 

// method 2 
def myBeanInstance2 = new MyBean(valuesMap) 

이 2 속성은 읽기 전용 있기 때문에 valuesMap 불법 = 매우 다르게

+0

저는 리플렉션 호출을 통해 할당을 수행하고 다른 하나는 클래스의 MetaProperty를 쿼리하여 데이터 유형을 찾고 할당을 수행한다고 추측합니다. 그래서 방법 1은 방법 2 (리플렉션 호출을하는 것)보다 빠르다. –

+4

얼마나 빨라 졌습니까? 걱정할 정도면 충분히 중요합니까? –

+0

Groovy Bean 플러스 Bean의'class' 속성을 설정할 때'method 1'이 실패합니다. – dmahapatro

답변

0

myBeanInstance1.properties 수행하는 것이 .

방법 2는 기본적으로 생성자 인 Groovy를 호출하여 맵 키와 속성 이름이 일치하는 반사 속성을 설정합니다.