gpt4 book ai didi

java - 将这些字段值排序到映射中

转载 作者:行者123 更新时间:2023-12-02 06:00:46 25 4
gpt4 key购买 nike

我已经基本解决了问题,但最终无法找出错误跟踪 - 这可能是我做错的一些微妙的事情。

我正在为 GSON 实现一种解决方法,它具有真实的 problems parsing nested maps .

public class RegisterValues
{
int Earth;
int Mars;
//etc for 200 planets

public Map returnValues()throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException{
final String [] fieldValues = new String[] {"Earth", "Mars", //etc }
RegisterValues regValues = new RegisterValues();

Map values = new HashMap<String, Integer>();
//values.put("Earth", Earth); manually this works, I'd rather loop through a readymade array of String values.


for (String value : fieldValues){
values.put(field, regValues.getClass().getField(field).getInt(field);) //here it breaks

}
return values;
}
}

错误跟踪:

Rebinding example.client.Panel // This is the class that is calling the above function
02:24:31.704 [DEBUG] Checking rule <generate-with class='com.google.gwtjsonrpc.rebind.RemoteJsonServiceProxyGenerator'/>
02:24:31.704 [ERROR] Errors in '.../RegisterValues.java'
02:24:31.704 [ERROR] Line 324: No source code is available for type java.lang.SecurityException; did you forget to inherit a required module?
02:24:31.704 [ERROR] Line 333: The method getField(String) is undefined for the type Class<capture#1-of ? extends RegisterValues>

所有行号都指的是我调用此类的部分。当我手动填充 map 时它可以工作,但当我尝试执行这种循环方法时它不起作用。

基本上我想知道以上是否正确?

旁注:如果上面看起来正确,是否是因为这是不可能的,因为这是一个反射类,即它是动态编译的(GWT.create( ))仅当我访问程序的这一部分时 - 因此它有一些问题?

最佳答案

一个java.lang.SecurityException被抛出到客户端,但它与 GWT 客户端不兼容(因为客户端代码被交叉编译为 Javascript)。

请参阅此链接以获取可与客户端代码一起使用的 Java 类的列表: http://www.gwtproject.org/doc/latest/RefJreEmulation.html

您似乎正在调用getField(String)在客户端。这就是为什么[ERROR] Line 333正在发生。如果此代码位于服务器端,请确保此类的路径在 .gwt.xml 中没有条目。作为源路径(例如:确保 <source path='server' /> 不存在)。

而不是做regValues.getClass() ,你可以试试RegisterValues.class ? (我不确定这是否会有所作为)

另外,我不确定你想要完成什么,但你不能在 GWT 客户端使用 Gson。您可以改用 GWT 的 AutoBean 功能: using Gson library in GWT client code

可以在服务器端使用Gson,如果没有创建Map如果您可以在客户端使用,您可以编写自定义序列化器( com.google.gson.JsonSerializer )和反序列化器( com.google.gson.JsonDeserializer )来构建 Map可在客户端使用的。

关于java - 将这些字段值排序到映射中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695326/

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