클래스 A가 .java 파일에 정의되어 있고 클래스 B가 .scala 파일에 정의되어 있다고 가정 해 보겠습니다.
class A 클래스 B를 사용하고 클래스 B는 클래스 A를 사용합니다.
Java 컴파일러를 사용하는 경우 클래스 B가 아직 컴파일되지 않았기 때문에 컴파일 오류가 발생합니다. 스칼라 컴파일러 클래스를 사용하면 클래스 A가 발견되지 않습니다. 컴파일 할 수있는 컴파일러가 있습니까?.java와 .scala 클래스 사이에 순환 종속성을 가질 수 있습니까?
4
A
답변
18
스칼라 2.7.2가 정확히 이것을 수행하기 위해 joint compilation mode을 도입했다고 생각 했습니까?
어떤 버전의 scalac
을 사용하고 있습니까?이 모드는 비활성화되어 실행 중입니까?
편집 : 잠깐, 클래스 A에 대한 스칼라 리드가 발견되지 않을 때까지 기다리십시오. 나중에 순수 자바 파일을 javac
으로 컴파일해야한다는 것을 알고 계셨습니까? Scalac의 공동 컴파일 모드는 실제로 Java 파일에 대해 *.class
출력을 생성하지 않으며 스칼라 클래스를 해당 서명과 비교하여 컴파일하기 만합니다. 따라서 나중에 스칼라 클래스가 컴파일되었으므로 javac
에서 문제가되지 않아도 나중에 Java 파일을 컴파일해야합니다.
1
Java에서 가짜 클래스 B를 만듭니다. A에서 참조 된 멤버 만 선언하십시오. 메서드의 본문은 비어있을 수 있습니다. A.java와 B.java를 함께 컴파일하십시오. 그런 다음 B.class를 버리고 B.scala를 컴파일하십시오.
관련 문제
- 1. 파이썬에서 순환 종속성을 감지합니다.
- 2. 이 순환 양방향 종속성을 어떻게 해결할 수 있습니까?
- 3. 순환 종속성을 사용하여 Jersey에서 JSON 가져 오기
- 4. 종속성 삽입으로 순환 종속성을 방지 할 수 있습니까?
- 5. NetBeans 모듈 프로젝트의 JAR 파일에 대한 종속성을 가질 수 있습니까?
- 6. PHP는 클래스 내에 인터페이스를 가질 수 있습니까?
- 7. 이 순환 종속성을 제거하는 방법은 무엇입니까?
- 8. 타사 순환 DLL 종속성을 해결 하시겠습니까?
- 9. C# :이 순환 종속성을 해결하는 방법은 무엇입니까?
- 10. 클래스 초기화의 순환 성
- 11. 자체적으로 참조 무결성이있는 테이블을 가질 수 있습니까?
- 12. Objective-C의 두 클래스 사이에서 참조를 어떻게 가질 수 있습니까?
- 13. ViewModel에 ValueConverter를 가질 수 있습니까?
- 14. 개인 수업을 가질 수 있습니까?
- 15. 개인 수업을 가질 수 있습니까?
- 16. App Engine에서 Java와 Python을 동시에 사용할 수 있습니까?
- 17. WCF에 .NET Remoting - 순환 종속성을 피하기위한 솔루션 구성
- 18. 클래스 디자인 - 관련 클래스 간의 순환 참조
- 19. 선택적 기본 생성자를 어떻게 가질 수 있습니까?
- 20. 클래스 사이에 NSArray 전달
- 21. viewController 당 여러 개의보기를 가질 수 있습니까?
- 22. Scala 프로그램 schema2src는 어떻게 사용할 수 있습니까?
- 23. 순환 참조 - 프로토콜 및 하위 클래스
- 24. ProtoInclude가 원하지 않는 종속성을 추가했습니다.
- 25. C++ 순환 헤더 의존성
- 26. 원격으로 관리되는 엔티티를 가질 수 있습니까?
- 27. perm gen 공간에서의 Scala 클래스 정의 효과
- 28. 순환 종속성을 피하기 위해 .NET에서 프로젝트/클래스를 정렬해야합니까
- 29. Scala REPL에서 클래스 또는 패키지를 다시로드하는 방법?
- 30. nexus에서 ant/ivy 검색 종속성을 사용하는 사이에 http 인증이 필요합니까?
감사합니다. 정확히 알고 싶습니다. 제가 강의를 들었을 때의 이론적 인 질문 일뿐입니다. – oshai