default-package에서 java-classes에 액세스하는 방법?


Answers

사실, 할 수 있습니다.

리플렉션 API를 사용하면 지금까지 모든 클래스에 액세스 할 수 있습니다. 적어도 나는 할 수 있었다 :)

Class fooClass = Class.forName("FooBar");
Method fooMethod = fooClass.getMethod("fooMethod", String.class);

String fooReturned = (String)fooMethod.invoke(fooClass.newInstance(), "I did it");
Question

저는 grails 프로젝트에서 다른 사람들과 함께 일하고 있습니다. Java 클래스를 작성해야합니다. 하지만 groovy로 만든 검색 가능한 객체에 대한 액세스가 필요합니다. 이 객체는 default-package에 위치해야합니다.

내 질문은 : 명명 된 패키지의 Java 클래스에서 기본 패키지의이 개체에 액세스하는 방법이 있습니까?




Groovy 코드에서 패키지를 사용할 수 있으며 모든 것이 Groovy 작동합니다.

이것은 grails-app 에 의한 약간의 코드 재구성과 처음에는 약간의 고통을 의미 할 수 있습니다. 그러나 큰 grails 프로젝트에서는 패키지로 패키지를 구성하는 것이 합리적입니다. Java 표준 패키지 명명 규칙 인 com.foo.<app>.<package> 합니다.

기본 패키지에 모든 것을 넣으면 통합에 방해가됩니다.

컨트롤러는 Java 패키지에 포함되지 않는 Grails 아티팩트 (또는 인공물) 중 하나 인 것 같습니다. 아마도 저는 아직 Convention 을 이해하지 못했을 것입니다. ;-)




Links