BeanUtilsBean.populate(object, fieldNameVSfieldValueMap)
를 사용하여 POJO의 필드를 채우려 고합니다.
방법.
내 POJO는 다음과 같습니다 :
class POJO{
Integer intField;
Double doubleField
String str;
}
현재 필드 이름과 필드 값 사이의 맵을 포함하는 HashMap이 있습니다.
이제 다음 코드를 사용하십시오 :
POJO obj = new POJO();
Map<String,String> map = new HashMap<>();
map.put("intField", "1");
map.put("doubleField", "1.1");
BeanUtilsBean.populate(obj, map)
POJO 객체 obj에서 위의 코드를 사용하면 intField 및 doubleField 필드가 각각 예상대로 1과 1.1의 값으로 채워집니다.
이 문제는 str의 해시 맵에 항목이 없으므로 문자열 필드 str에 null이 할당되고 문자열의 기본값은 null입니다. 그러나 맵에 언급되지 않은 사용자 정의 값을 필드로 설정하는 명시적인 방법을 원했습니다. 이 예에서는지도에 str에 대한 항목이 없으므로 str을 "john"으로 설정하고 싶다고 가정하겠습니다. 편집 1 : 또한 필드 유형에 따라 다릅니다. 따라서 POJO에 다른 필드가 있고 문자열 유형 인 경우 맵에 항목이없는 모든 문자열 필드에 대해 John으로 채워 져야합니다.
편집 2 : POJO는 커밋 액세스 권한이없는 다른 프로젝트에 정의되어 있으므로 POJO 자체에서 기본값을 설정하는 것은 해결책이 아닙니다.
-
답변 # 1
-
답변 # 2
기본적으로 할 수있는 작업 :
Map<String, String> map = new HashMap<>() { // new HashMap<String, String> perhaps @Override public String get(Object key} { return super.getOrDefault(key, "john"); } }
필드마다 다른 기본값을 원하면 기본값으로 미리 채워진 로컬 맵을 사용하십시오.
그러면 스스로 수업을 만들어야합니다.
관련 자료
- python 3.x - 유효성 검사기를 사용하지 않고 필드에 None이 전달되면 pydantic에서 기본값을 만들 수 있습니까?
- mysql - Mysql8022 기본값 설정 DATE_FORMAT (sysdate (), '% Y % m % d') 오류
- c# - roslyn 구문 트리 - 필드 값 변경
- python - Django의 쿼리 셋에있는 모든 개체의 필드 값을 어떻게 업데이트 할 수 있습니까?
- Java 목록은 한 필드를 기준으로 정렬 한 다음 특정 값을 기준으로 정렬합니다
- java - EditText는 빈 필드 android의 값을 가져옵니다
- kubernetes - specclusterip - 잘못된 값 :"": 필드는 변경할 수 없습니다
- mysql - 새 값이 null이 아닌 경우 행 필드를 업데이트하는 방법
- Elasticsearch 다시 인덱싱하는 동안 필드를 제거하는 방법
- reactjs - formik의 다른 필드를 기반으로 한 필드의 입력 값을 설정하는 방법은 무엇입니까?
- python - sqlalchemy automap에서 기본값이 작동하지 않습니다
- python - 장고 템플릿의 관련 테이블 필드 값에 액세스
- Django Python의 모든 개체 목록에서 필드 값 목록을 어떻게 가져올 수 있습니까?
- javascript - Vuetify 텍스트 필드에서 키와 값을 얻는 방법은 무엇입니까?
- reactjs - 머티리얼 UI에서 경로 이름을 기반으로 숨겨진 텍스트 필드 값을 설정하는 방법
- while 루프에서 Bash 변경 변수 값
- c# - "| ="연산자가 정적 필드 값을 캐시합니까?
- 열이 null 인 경우 Eloquent 기본값 사용
- postgresql - 선택 기본값 - sql
- python - 정규식 사용 문자열에서 특정 필드 값을 가져옵니다
org.apache.commons.beanutils.ConvertUtilsBean 클래스를 사용하여 org.apache.commons.beanutils.BeanUtilsBean 클래스를 사용해보십시오