API를 설계하고 있습니다. 그것은 똑같이하는 많은 메소드를 가지지 만, 다른 매개 변수 프리미티브를가집니다. API 디자인에서 프리미티브 피하기?
public void someMethod1(int x);
public void someMethod1(float x);
public void someMethod1(double x);
public void someMethod2(int x, int y);
...
public void someMethod3(int x, int y, int z);
...
인해 프리미티브에, 나는 시간이 지남에 따라 상당히 이상 유지할 생각을 많이 붙여 &을 복사해야합니다. 메소드와 생성자에서 프리미티브를 피하는 것이 좋은 생각일까요? 예를 들어, 위의 교체는 다음과 같습니다
public <T extends Number> void someMethod1(T x);
public <T extends Number> void someMethod2(T x, T y);
public <T extends Number> void someMethod3(T x, T y, T z);
편집 : 이것의 단점은 무엇
?
너무 많은 질문이 있습니다. 여러 가지 질문을하고 싶을 수도 있습니다. API 디자인의 기본 요소에 대해서만 묻는 것이 아닙니다. – Brabster
자바에서는 이것을 쉽게 해결할 수있는 방법이 없습니다. 코드 생성기를 복제하거나 사용하는 것입니다 (예 : Trove가 기본 TIhLongHashMap을 가지고 있으며 기본 Java HashMap보다 훨씬 빠름) 또는 객체를 사용하거나, 거대한 성능 패널티로 살아갑니다. 자동 (un) boxing 수백만 개의 프리미티브와 수백만 개의 불필요한 객체 생성은 perfs를 죽이는 확실한 방법입니다. 기본 Java API와 클린 OO를 기반으로 한 것들이 커다란 콜렉션을 위해 단순히 그것을 잘라 내지 않는 이유입니다. 그 때 당신은 Trove와 같은 것을 사용합니다. 그것은 당신의 요구 사항에 달려 있습니다. – SyntaxT3rr0r