나는과 같이 오버로드 방법을 사용하는 JCR API를 사용하고 있습니다 :개체 참조를 인스턴스 유형으로 자동 캐스팅하는 방법은 무엇입니까?
setProperty(String value)
setProperty(Boolean value)
setProperty(Integer value)
...
그때 String
, Boolean
, Integer
등 인스턴스를 포함 할 수있는 Collection<Object>
있습니다.
각 요소를 해당 인스턴스 유형의 올바른 setProperty
구현에 전달하여이 컬렉션을 반복하고 싶습니다. 과 OO 이념에서 벗어난 - -이 솔루션은 단순히 확장하지 않습니다
for (Object value : values) {
if (value instanceof String) node.setProperty((String) value);
if (value instanceof Boolean) node.setProperty((Boolean) value);
if (value instanceof Integer) node.setProperty((Integer) value);
...
}
이제 추한 것 외에 : 확실한 방법은 다음과 같이한다. 이 특수한 경우에 효과가 있지만 유형 수가 증가하면 다루기 힘들어집니다.
마치 주조 작업을 자동으로 수행하기 위해 우아한 트릭이나 유틸리티가 있어야하는 것처럼 느낍니다.