Java反射的优缺点?

Sag*_*ith 0 java reflection

我今天正在看一些代码,并且使用反射遇到了一段代码,以使用一个通用对象并根据类型对它进行不同的处理。我以前从未见过这样的东西,我想知道在Java中使用反射有什么优缺点?

Div*_*ers 5

Java中不存在反射的利弊。这是您应在特定情况下使用的工具。例如:

  • 当创建需要使用代码进行运行时操作的库时。
  • 当您编译了没有源代码的jar时,jar的作者犯了一个错误,并且没有公开适当的API。

因此,基本上甚至不存在您应该使用反射还是不使用反射的问题,这是一种情况。如果在99.99%的情况下使用反射就可以完成这项工作,则不应使用反射。

UPD

您不能将它用于所有内容吗?就像您真是个混蛋一样,您可以使用它来调用您调用的每个方法,那么阻止您执行此操作的是什么呢?

主要是速度慢,代码无法维护,失去编译时代码检查,破坏了封装。

  • “如果在99.99%的情况下不使用反射,就不能使用反射。” 我什至会说100%... (2认同)