2017-10-27 13 views

답변

0

클래스/메소드/등을 나타내는 데 사용하는 이름입니다. 귀하의 코드와 그것이 컴파일러에 의해 생성 된 바이트 코드에서 가지고있는 이름은 같을 필요는 없습니다. 스칼라 컴파일러는 Java 컴파일러보다 이름을 잘게 써야하지만이 경우는 둘 다 동일합니다.

내부 클래스가 JVM에 실제로 존재하지 않기 때문에 외부 인스턴스를 포함하는 추가 필드가있는 일반 클래스입니다. 클래스의 JVM 이름은 <outer_class>$<inner_class>입니다. (그것은 프로그래머뿐만 아니라 사용에 대한 법적 문자가 비록)의 이름에서

스칼라와 자바에서

, $는 일반적으로 어떤 방법으로 엉망입니다 나타냅니다.

+0

답변 해 주셔서 감사합니다. 내가 아마 원인을 얻을 것 같아요,하지만이 상황에서 원하는 것은 ** $ **가 아닌 정상적인 classTag를 얻는 것입니다. 수정하거나 피할 수있는 방법이 있습니까? 다시 한 번 감사드립니다 –

+0

이것은 일반적인 'ClassTag'(또는'toString'으로 인쇄 된 방식)입니다. 원하는 형태로 _name_ 클래스를 원한다면,이 경우에는'replace ("$", ".")'가 작동 할 것이다. 모든 이름 맹 글링을 다루는 것이 더 어려울 것입니다. –

+0

감사합니다, 당신이'replace ("$", ".")'를 사용한다고 말한 것과 똑같은 일을했습니다. 그러나 어쨌든 당신에게 감사드립니다. –