다양한 양의 개체를 가져 와서 인스턴스를 만들어 목록에 추가하는 작은 함수를 만들려고합니다.여러 개체를 인스턴스화하여 목록에 넣을 수있는 일반 메서드를 만드는 방법
저는 개인적으로 String
, BigDecimal
및 Long
에 이것을 사용하고 싶습니다.
가 나는 다음과 같은 기능과 밀접한 느낀다 :
<T> List<T> createGenericList(Class<T> clazz, T ...params) throws Exception {
List<T> list = new ArrayList<T>();
for (T param : params) {
Constructor<T> ctor = clazz.getConstructor(clazz);
T instance = constructor.newInstance(param);
list.add(instance);
}
return list;
}
이 String
위대한 작품 :
createGenericList(String.class,"a","b")
하지만 BigDecimal
또는 Long
createGenericList(BigDecimal.class,10,10);
자바이기 때문에 내 번호를으로 읽는 중. 주조도 효과가없는 것 같습니다.
no instance(s) of type variable(s) exist so that Integer conforms to BigDecimal
inference variable T has incompatible bounds:
equality constraints: BigDecimal
lower bounds: Integer
나는 또한 ImmutableList.of(...)
을보고 있었지만 동일한 문제가있는 것으로 보입니다.
내 목표는 통과해야하는 각 추가 매개 변수에 대해'new'를 입력하지 않는 것입니다. 원래 각 개체에 대해 별도의 기능이있었습니다. 3 가지 기능을 수행하는 것이 쉬운 방법이 있다면 배우려는 시도와 거의 똑같은 일을했습니다. – CeePlusPlus