sau Ví dụ Scala định nghĩa một lớp bên trong một đối tượng gói:Sử dụng lớp Scala quy định tại đối tượng gói từ Java
package com.mycompany
package object test {
class MyTest {
def foo(): Int = {
42
}
}
}
Ba lớp học sau đây được tạo ra:
com/mycompany/test/package.class
com/mycompany/test/package$.class
com/mycompany/test/package$MyTest.class
Vấn đề nảy sinh khi cố gắng sử dụng lớp MyTest
từ Java. Tôi nghĩ rằng kể từ khi package$MyTest
chứa một $ trong tên, Java không thừa nhận sự tồn tại của nó. Tuy nhiên, bạn có thể truy cập lớp học package$
.
Chạy javap
trên package$MyTest.class
lợi nhuận:
Compiled from "Test.scala"
public class com.mycompany.test.package$MyTest {
public int foo();
public com.mycompany.test.package$MyTest();
}
tôi đã cố gắng truy cập vào các lớp học sử dụng Eclipse, Intellij và Netbeans, nhưng không thành công. Có thể sử dụng các lớp Scala được định nghĩa trong các đối tượng gói từ Java không?
Điều này rất hữu ích khi tôi đang viết lớp gói, nhưng không phải khi tôi đang sử dụng thư viện của bên thứ ba. –