一个 Java 的问题,来这里问下,这问题很白痴吗。。怎么我在 segmentfault 提问被踩了两次,又没一个人肯回答一下。。

2019-11-30 09:59:47 +08:00
 so2back

好像不能发图片,我直接复制一下自己用来解释的代码,应该能看得懂说什么吧。。。我就想问问 generateMap 这个方法是能够实现的了的吗。。


public static void main(String[] args) { String name = "abc"; Integer age = 20; List<string> hobby = new ArrayList(); hobby.add("run"); hobby.add("swim"); // 这里直接调用方法,放入想要生成 map 的参数 generateMap(name, age, hobby); }</string>

public static Map generateMap(Object... entrys) {
    // 然后在这里根据接到的可变参数,生成一个 map,生成的 map 如下,就是根据收到的参数的名称对应放进去

// Map map = new HashMap(); // map.put("name", name); // map.put("name", age); // map.put("name", hobby); }

9908 次点击
所在节点    Java
86 条回复
so2back
2019-11-30 12:26:07 +08:00
靠,图片我这个是新号发不出去。。
so2back
2019-11-30 12:28:32 +08:00
上传到 imgur 了,后缀是
DZVhUTT
XffaLiS
4HiWMBk
so2back
2019-11-30 12:28:45 +08:00
我还真是煞费苦心啊- -
GrayXu
2019-11-30 12:48:15 +08:00
不可以获得名字吧,这需求为啥不直接用 bean 呢…
sutra
2019-11-30 12:58:24 +08:00
我没能看懂你的问题。
beidounanxizi
2019-11-30 13:03:10 +08:00
被喷说明你又学到了 骚年 加油哟
by73
2019-11-30 13:11:04 +08:00
看了半天,是希望获得函数实参的名称? emm 似乎不行,Reflection API 能得到变量名称的似乎只有 `Field` 和 `Parameter`,而且 Parameter 的名称多数都会被编译器优化掉,而而且 `Object... vars` 这个是当作一个 Parameter,而而而且 Java 传参是值传递,完全无法从形参得知实参的元信息。。
Leigg
2019-11-30 13:12:51 +08:00
To learn how to ask a question.
neoblackxt
2019-11-30 13:18:09 +08:00
我看懂了,你要的是 getOriginalArgName(Arg arg...)
真是脑洞太开,我不会
leaves615
2019-11-30 13:59:08 +08:00
想法非常的好,编程语言基础不够。把源码环境思维与编译后运行环境思维混在一起思考。
donglingyongadls
2019-11-30 14:19:19 +08:00
打了一堆字都没说明白,49 楼一句 getOriginalArgName(Arg arg...) 概括完了。
获取字面量毫无意义,如果你已经知道了字面量了,你打字的时候为什么不存到一个变量里面去直接带过来?
如果你不知道字面量,说明这个东西是运行时的一个变量,你为什么不直接把这个变量丢过来?

处于想的太多又看的太少的状态
louislivi
2019-11-30 14:25:24 +08:00
楼主想要的应该是动态传参,接受参数 利用参数名当 key 参数值当 value 自动生成 map 类型 对吧?
louislivi
2019-11-30 14:33:39 +08:00
最终在函数中接收到的只是一个 Object[] ,貌似无法获取原变量名
ace12
2019-11-30 14:49:29 +08:00
这大概就是 java 需要 pojo 存储数据的原因吧
jason19659
2019-11-30 15:01:24 +08:00
@neoblackxt #43 楼主说半天我没看懂。。。你这一句我就懂了。。
Aresxue
2019-11-30 15:02:45 +08:00
问题在于引用就只是个引用,编译过后就丢失了,随便找个源码看就知道了。
Aresxue
2019-11-30 15:06:06 +08:00
再贴一个 R 大的回答 java 能否获取到引用的名称? - 知乎
https://www.zhihu.com/question/29643012 看完你就知道了
Ky1inZhang
2019-11-30 15:22:07 +08:00
我理解你的问题是,如何获取参数名称。

我也没仔细看,甩给你瞅瞅是不是这方向。

反射获取参数名称
https://blog.csdn.net/revitalizing/article/details/71036970

函数获取参数名称的几种方法
https://blog.csdn.net/wwwwenl/article/details/53427039
so2back
2019-11-30 15:23:36 +08:00
@beidounanxizi 还是有点难受,我有些想当然了- -
so2back
2019-11-30 15:24:57 +08:00
楼上的大部分我认真看了,不一一回复了,以后提问我会注意的,我以为直接贴代码可能可以理解问题,我想岔了

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

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

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

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

© 2021 V2EX