나는 대답이 어딘가에 있지만, 올바른 키워드가 없거나 단순히 잠을 자야한다는 것을 알 수있다. 그러나 ~ ~ :) :Java : java.awt.image에 사용자 정의 클래스를 추가 할 수 있습니까?
나는 BufferedImage를 확장 할 필요가있다. MacGayvering 전체 클래스는 java.awt.image에 새로운 클래스를 남겨 두는 것이고, 접근 할 필요가있는 패키지 보이기 전용 필드를 포함하고 있기 때문입니다. Normaly, 그런 일을하지 않을 이유가 있지만 소스를 확인하면이 특별한 경우에는 그렇지 않다는 것을 알 수 있습니다.
나는 그것을 테스트, 컴파일 및 것 같습니다.
그러나 나는 그것에 의지 할 수 있습니까? 그것은 허용됩니까? Java의 사전 정의 된 시스템 패키지에 클래스를 추가 할 수 없도록 할 수있는 것이 있습니까? 아니면이 작업을 수행하는 올바른 방법 일 뿐이며 아무도 나에게 말하지 않았습니까? 이미 제공
UPDATE
answeres 제대로 뭔가 을하고 그 법률에 무관 beeing는되어 자주 내 기본 솔루션보다 일부 법규 위반을 의미하는 경우 (법적 문제의 가능성을 언급 ;-)과 가능성 수퍼 클래스에서 변경된 동작 (이 경우는 거의 없을 것입니다). 그게 다야, 난 UPDATE2
큰
... 그런 식으로 할 단지 것! 자바는 ... 그래서 내가 정말이 맥가이버해야 ... 보호 패키지 이름입니다
갱신 3
내가 속성 해시 키를 취득하지 못할 이유가 궁금했다. 또한 fn의 getPropertyNames은 이렇게 설명되어 있습니다
public String[] getPropertyNames() {
return null;
}
내가 읽은 최저 코드 ...
확장 클래스가 'public'이 아닌 한, 클래스 확장은 새로운 클래스의 패키지에 의존하지 않습니다. 'BufferedImage'는'public'입니다.뭐하고 있니? 그리고 왜? – Bombe
이지만 BufferedImage.properties는 없습니다. 그것은 단순히 패키지로 볼 수 있습니다 : - @! 파생 된 클래스에서이 필드를 설정하는 유일한 방법은 하나의 생성자를 사용하는 것입니다. 그러나 다른 c-tor는 내가 쓸 수없는 매우 유용한 기능을 가지고 있습니다. 이 문제를 극복하는 유일한 방법은 파생 클래스를 같은 패키지에 보관하는 것입니다. – rhavin
첫 번째 질문은 "무엇을하려고합니까?" Image processing을 많이 했어. BufferedImage를 확장 할 필요가 없다. 그래서, 그것은 당신이 잘못된 방식으로 문제에 접근하고있는 것일 수 있습니다. –