Guice를 사용하여 연습 문제를 해결하려고합니다. 나는 그 밖의 모든 것을 거의 다했으나,이 방법의 구현은 영혼을 혼란스럽게 만든다. 이 메소드의 목적은 로그 작성기의 등록자 역할을하는 것이고 올바른 로그 작성기 (@ 로거 이름)로 디스패치 메시지로 작동하는 또 다른 메소드가 있습니다. 나는 그 일을하는 방법을 알기 때문에 배차원에 대해 너무 걱정하지 않는다. 그러나 등록기 방법은 제네릭과 반사를 사용해야합니다. 나쁘게 여기에 갇혀 있고 Java 환경은 "java.lang.Class"로 반사를 사용할 때 거의 존재하지 않습니다. "클래스,에 myListener 인터페이스의 구현 또는 확장 anyType에 포함되어 있습니다"나는 위의 와일드 카드 지원 형식이라고 이해인터페이스 메서드 구현을 위해 Java에서 제네릭 및 리플렉션 사용
class MyManagerImpl implements MyMgr {
/* MyListener below is an interface */
public synchronized void regService(Class<? extends MyListener> loggerObj) {
...
...
...
}
public synchronized void dispatch(String msg, String logger) {
/* dispatches the messages to the correct logger which
* I know how to do
*
*/
}
}
:
이 코드는 아래와 같습니다. 그러나 익명을 위해 Class를 사용하는 것은 상당히 새로운 일입니다. 이 loggerObj가 실제로 수정되거나 멤버 함수를 호출하는 데 사용되는 예제를 볼 수 있습니까?
"구현 본문"이란 무엇을 의미합니까? – fge
실제로'MyListener.class'와 같은 클래스 객체를 전달하려고합니까? – markspace
'listService'를 사용하면'doService'의 본문에서 많은 일을 할 수 있습니다. 그 방법이 무엇인지 명확히해야합니다. –