Я хочу получить список методов в вложенном объекте-компаньоне с использованием отражения Java. Это A.B
в приведенном ниже примере.Получить статические методы класса, вложенного в объект, используя отражение Java
object A {
object B {
def foo: Int = 4
}
class B {}
def bar: Int = 5
}
class A {}
// This works, `bar` is printed.
println(classOf[A].getMethods.map(_.getName).mkString("\n"))
// This doesn't work, `foo` is not printed.
println(classOf[A.B].getMethods.map(_.getName).mkString("\n"))
Кажется, как получить список методов на внешнем компаньона объект A
работает, но не на вложенной один.
Есть ли способ написать метод, который будет принимать Class[_]
и получить все методы, определенные на сопутствующем объекте, является ли он вложенным или нет?
Вы уверены, что вы вставили правильный код? Кажется, я не могу воспроизвести первый отпечаток, как вы заявили. – pedrofurla
И classOf [A] не может иметь метод 'bar', иначе' new A' также будет иметь панель методов. – pedrofurla
Проверьте эту сессию репликации https://gist.github.com/pedrofurla/d48d1f1fc759e2849400cb91fc69695b out – pedrofurla