2017-10-15 6 views
0

한 bean에서 다른 bean으로 bean/pojo 값을 복사하고 있습니다.Beanutils 클래스에 대한 알 수없는 속성 : pinkyMoreAndMore works pMoreAndmore not

Beanutils는 훌륭하게 작업합니다.

아침 제가

Unknown property on class 

예외를 발생 특성 부딪쳤다.

은 속성의 이름 "pMoreAndMore"이고, 게터와 세터는 I는 다음의 속성 명 "pMoreAndMore"를 사용하여 값을 복사하려고 getPMoreAndMore 같은 신뢰할 람()

의해 발생하지만,이 예외 이상 발생 하였다.

온라인 검색의 비트를했지만 많이 찾을 수 없습니다, 그래서 내가 beanutils와 값 복사를 수행하고, 사용되는 속성 이름 "pinkyMoreAndMore"(getPinkyMoreAndMore()와 같은 생성 게터로) 내 속성을 "pinkyMoreAndMore을"이름 .

여기에 문제가 없습니다.

"pinkyMoreAndMore"가 작동하지만 "pMoreAndMore"가 작동하지 않는 이유는 무엇입니까? 낙타 껍데기 같은 경우에 이것이 가장 중요한 경우일까요?

+1

'PMoreAndMore'로 테스트 할 수 있습니까? 나는 어딘가에 롬복 getter 디폴트 이름이 어떤 bean 유틸리티가 기대하는 것이 아닌 상황에 부딪쳤다. 아니면'getpMoreAndMore','getPmoreAndMore'와 같이 setter를 생성하도록 lombok에 지시할까요? 그것이 사실인지보기 위해서입니다. – pirho

+0

@pirho 나는 "PMoreAndMore"샷을 주었고 그 중 하나가 작동합니다. 꽤 이상한, 나는 당신이 롬보크와 beanutils 사이에 이러한 경우에 양립성이 없다고 생각한다. 알아 둘만한! –

답변

1

자바 빈 스펙은 사람들이 commongly 생각 좀 더 특이한입니다 :

property - getter 
----------------- 
     aa - getaa() 
     aA - getaA() 
     Aa - getaa() 
     AA - getAA() 

specification에 따르면 pMoreAndMore에 대한 게터는 getpMoreAndMore()을 지정해야합니다. 이것은 BeanUtils가 기대하는 것입니다. Lombok이 속성 접근 자 이름 지정에 대한 일반적인 망상을 따르는 것은 버그로 간주되어야합니다.

자세한 내용은 다음 문서 Java Tip #6 - Don't capitalize first two letters of a bean property name을 참조하십시오.

+0

건배 @Aleh. 나는 lombok github에서 문제를 만들었습니다 : https://github.com/rzwitserloot/lombok/issues/1496 –