문제가 있습니다. 그래서, 100+ 메소드를 가진 JRE 네이티브 클래스가 있다고 가정하십시오 :자바 : 메서드 인수를 변경하는 가장 효율적인 방법
그리고 이러한 메소드 중 5 개를 변경하고 싶습니다. 특히 정수를 double로 지정하십시오.및 추가 double 인수를 추가
나의 현재 솔루션은 래퍼 클래스를 포함한다 :
-A : 제공 원래 클래스에 직접 액세스 할 수
-B : (몇 가지 추가 입력을) 더블 인수를 "번역"라는 다섯 개 가지 방법을 가지고 있습니다 원래의 정수 인수로 변환합니다. 그래서 :
class WrapperMethods{
public HundredMethods original = (assigned at constructor)
public void method1(double,double(extra)) {
int i = (assigned a value in "code" below)
this.original.method1(i);
}
}
모두 변경하고 위의 한 외에 "무거운"클래스에 몇 가지 방법에 인수를 추가하는 또 다른 경량의 솔루션이 있습니까? 내 코드에서이 솔루션을 실제로 구현하는 측면에서 사용자가 래퍼 클래스가 어떤 메서드를 변경하는지 알지 못하는 경우 엉망이 될 수 있다는 것을 발견했습니다. 사실, 나는 대략 250+ 메소드 클래스를 가지고 있는데, 나는 25 개의 메소드를 변경하고있다. 그래서 클래스가 클수록 내 코드가 더 복잡해진다. 내 코드를 공용으로 게시하려는 경우 래퍼를 사용하려고 할 때마다 래퍼가 변경하는 메서드를 찾아야합니다.
감사합니다.
랩하려는 클래스, 변경하려는 메서드 및 변경해야 할 이유를 알려 주면 더 나은 방법을 제공 할 수 있습니다. 공개 JRE 클래스이고 어쨌든 당신의 wrk를 공개하고 싶다면 지금 시작하지 않겠습니까? –
@JBNizet java.awt.Component 클래스를 변경하고 크기 나 위치를 처리하는 메소드를 변경하려고합니다. 내가 내 질문을 제네릭으로 만든 이유는 내 프로젝트의 버전 0.1을 릴리스했기 때문입니다. [ScaleUtils] (https://github.com/19mkarpawich/ScaleUtils), 이는 다른 여러 UI 클래스가 될 가능성이 가장 높음을 의미합니다. 나는 방법을 바꾼다. –
왜 메소드 시그니처를'int'에서'double'으로 바꿀 수 없습니까? 'int'가 자동적으로'double'으로 넓혀지기 때문에 모든 현재 호출 사이트가 작동 할 것입니다. –