StackOverflow 上刚提问的问题就被关闭了..

2019-12-04 16:18:36 +08:00
 arjen

上午在 StackOverflow 上提了个问题,过了三个小时就被关闭了...

How does Java reflection works? [closed]

As we know, we can use Java API to get class, method, parameters, etc.

Through the package java.lang.reflect I found some native method about reflection, I really wonder what does Java do for implementing it?

One of my conjectures was: When JVM loading a class, it will create an instance for this Class and, it can be reached when the reflection is invoked.

没有给出关闭的理由,有点好奇是提问的方式不对吗?同时这个问题想听听大手子的回答。

5544 次点击
所在节点    Java
21 条回复
arjen
2019-12-04 16:19:17 +08:00
其中有一个回复

> When the JVM is executing byte code, it basically uses the same mechanism that reflection uses. References are dereferenced and methods are invoked using virtual machine op-codes. – Elliott Frisch 3 hours ago
Yuicon
2019-12-04 16:21:27 +08:00
重复了吧这么常见的问题
google54321
2019-12-04 16:23:47 +08:00
问题不够具体 @arjen
Seney
2019-12-04 16:25:00 +08:00
这种问题太多了吧 冗余问题 有权限的大佬肯定是会关闭的
maomaomao001
2019-12-04 16:25:16 +08:00
How does Java reflection works ?


你这个???? 难道要把书的反射相关的章节都贴出来?

问的过于宽泛了应该是
arjen
2019-12-04 16:25:56 +08:00
@Yuicon 应该是重复了,不过按照我的标题搜不到
要换种姿势,把 works 换成 implements 能找到一个答案...
https://stackoverflow.com/questions/20461851/how-is-reflection-implemented-in-java
dreamerlv3ex
2019-12-04 16:26:52 +08:00
握手,英文差的可怜.
arjen
2019-12-04 16:27:40 +08:00
@google54321 我以为已经够具体了,看来还是想当然了。
@Seney 我也以为这样的问题会很多,不过还真的没找到,后来换了个词找到了
@maomaomao001 应该是我问的方式不对,本来是想了解一下底层的实现
arjen
2019-12-04 16:28:05 +08:00
@dreamerlv3ex 哈哈,看都能看懂,一出手就词穷了。
ashong
2019-12-04 16:30:27 +08:00
这个知乎体提问方式更适合 quora
arjen
2019-12-04 16:33:04 +08:00
@ashong 确实有点写文章的感觉🤣
TtiGeR
2019-12-04 16:43:47 +08:00
主题不够具体,而且标题里的主谓不一致,正文里的语法尤其是时态比较乱,想看懂得先逐段翻译回中文才能理解。

下次可以问具体一些,比如:

How does reflection read class metadata in Java at runtime?

另外像正文第一段的话就多余了,能回答你问题的人并不需。另外,要把你的推断写成问题,比如:

Does JVM share metadata of class instances through a private API?
rogwan
2019-12-04 16:50:51 +08:00
so 一般不欢迎原理性、泛问题,比较适宜直接贴问题代码,展示 bug 或 error 类的情况
KentY
2019-12-04 17:01:49 +08:00
SO 都有关闭理由, 每个 closing vote 都会选择一个. 我看到你的问题, 也会 vote to close, 应该是 Needs more focus.
你应该读 SO 一篇怎么问问题, 问什么问题的问.
stackoverflow 是解决具体问题的, 不是这种大的. 就像, 我问"how does jvm work; how does java time api work...."
其实你可以变通, 弄一个小例子... 然后把你要知道的问题通过这个例子引申过去, 这样从这个具体例子出发, 人们就会解答你的实际问题. 这样还一个好处就是, 可以屏蔽那些非常浅显的解答, 因为当人们读了你的问题了解你的真正疑惑, 再单纯解答你的例子问题就没意义了.

虽然大部分时间都在答题, 问的很少, 但是看的问题多了, 也有点"经验", 希望对你游泳.
my 2cents.
hehheh
2019-12-04 17:16:48 +08:00
楼上最好的回答是 so 不欢迎原理性,泛问题。除非是很特殊的应用场景
arrow8899
2019-12-04 17:23:36 +08:00
问题太宽泛了,建议先读一下 jvm 相关书籍
arjen
2019-12-04 17:58:13 +08:00
Iamnotfish
2019-12-06 05:41:57 +08:00
讲个故事:因为我问的垃圾问题太多(自己太菜),SO 把我的号都给封了。
arjen
2019-12-06 06:19:07 +08:00
@Iamnotfish 哈哈哈惨
waterlaw
2019-12-08 10:52:35 +08:00
看 jvm 源码, 还有 javac 本身就是反编译利器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/625918

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX