Вы не можете использовать classOf
, потому что он работает во время выполнения, а аннотации Java требуют констант в качестве аргументов.Вместо этого вы можете захватить имя вашего класса во время компиляции, используя макросы.
Я бы порекомендовал вам использовать некоторую библиотеку, которая может это сделать, например, NameOf .
Добавить зависимость от вашего build.sbt
:
libraryDependencies += "com.github.dwickern" %% "scala-nameof" % "1.0.3" % "provided"
Тогда вы можете использовать его как:
import com.github.dwickern.macros.NameOf._
@ApiImplicitParams(Array[ApiImplicitParam](
new ApiImplicitParam(
name="Something",
dataType= qualifiedNameOfType[com.package.MyClass])
)
)