gpt4 book ai didi

java - 反射(reflection)——如何做?

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:19 25 4
gpt4 key购买 nike

我想返回一个包含 Android 资源的所有公共(public)方法的列表,作为方法名 + 参数,例如相机的 open(int cameraId)、release()、setDisplayOrientation(int Degrees) 等。所以我创建了这个方法

public List<String> getPublicMethods(String api) throws ClassNotFoundException {

Class clazz = Class.forName("android.hardware.Camera");
Method[] publicMethods= clazz.getDeclaredMethods();


List<String> list=new ArrayList<>();

for (Method met : publicMethods)
list.add(met.getName());
return list;
}

我只能返回一个列表。我如何更改它以便它也返回参数?

最佳答案

考虑返回一个 HashMap。这将使您可以灵活地返回这两个对象。方法名称将用作键,然后参数用作列表。类似的东西

Map<String, List<Object>> values = new HashMap<>();


public Map<String, List<Object>> getPublicMethods(String api) throws ClassNotFoundException {

Map<String, List<Object>> values = new HashMap<>();

Class clazz = Class.forName("android.hardware.Camera");
Method[] publicMethods= clazz.getDeclaredMethods();

List<Object> listArgument = //Get Arguments Here

for (Method met : publicMethods)
values.put(met.getName(), listArgument);
return values;
}

方法名称字符串参数列表列表。

关于java - 反射(reflection)——如何做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52443248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com