Codenameone Enum.valueof String在iOS 9上引发IllegalArgument异常
在codenameone中,在enum上使用valueOf(字符串s)时抛出IllegalArgument异常:在iPhone5、iOS9上没有enum常量,但在模拟器和Android上工作正常。3-4周前效果不错。在文本框中键入OK并按下simulator fine上的按钮,如果您为iOS9构建并运行它-您将获得异常 下面是要测试的快照代码:Codenameone Enum.valueof String在iOS 9上引发IllegalArgument异常,ios,codenameone,Ios,Codenameone,在codenameone中,在enum上使用valueOf(字符串s)时抛出IllegalArgument异常:在iPhone5、iOS9上没有enum常量,但在模拟器和Android上工作正常。3-4周前效果不错。在文本框中键入OK并按下simulator fine上的按钮,如果您为iOS9构建并运行它-您将获得异常 下面是要测试的快照代码: public class MyApplication { private Form current; private Resources theme;
public class MyApplication {
private Form current;
private Resources theme;
enum popo { OK, ERROR,EXCEPTION};
public void init(Object context) {
theme = UIManager.initFirstTheme("/theme");
// Pro only feature, uncomment if you have a pro subscription
// Log.bindCrashProtection(true);
}
public void start() {
if(current != null){
current.show();
return;
}
Form hi = new Form("Hi World");
hi.setLayout(new BorderLayout());
final TextArea input = new TextArea();
Button testr = new Button("Touch me");
testr.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
popo q = popo.valueOf(input.getText());
Dialog.show("title",
"just found string = "+input.getText()+" \nthat gives enum = "+q.toString()
, "OK", null);
}
});
hi.addComponent(BorderLayout.CENTER, input);
hi.addComponent(BorderLayout.SOUTH,testr);
hi.show();
}
public void stop() {
current = Display.getInstance().getCurrent();
}
public void destroy() {
}
}
非常感谢,,
Goran.枚举的值()
和相关调用在Codename One中未实现。问题的关键在于它们在模糊处理过程中失败(对于Android),需要一些由javac
工具生成的反射代码
解决方法是使用如下内容:
enum popo {OK("OK"), ERROR("ERROR),EXCEPTION("EXCEPTION");
public popo(String value) {
this.value = value;
}
String value;
};
然后使用myPopo.value
Enum的values()
,相关调用不会在Codename One中实现。问题的关键在于它们在模糊处理过程中失败(对于Android),需要一些由javac
工具生成的反射代码
解决方法是使用如下内容:
enum popo {OK("OK"), ERROR("ERROR),EXCEPTION("EXCEPTION");
public popo(String value) {
this.value = value;
}
String value;
};
然后使用
myPopo.value
这不是swift,跨平台?抱歉-忘了提到它在codenameone上。这不是swift,跨平台?抱歉-忘了提到它在codenameone上。我重写了的值并使用了popo[]l=popo.values();它工作了,它不应该工作吗?它在iOS设备上对你有用吗?据我记忆所及,它不应该出现,但我可能在这里错了。我重写了valueOf并使用了popo[]l=popopo.values();它工作了,它不应该工作吗?它在iOS设备上对你有用吗?据我回忆,这不应该,但我可能错了。