java - 如何区分Processing sketch运行的模式(Java/JS/Android)?

标签 java javascript android processing mode

我编写了一个多平台逻辑游戏,它必须在所有模式下运行:Java、JS 和 Android。我需要在所有模式下做一些不同的事情(特别是但不限于存储,对于 Java/Android 我想使用 load/saveTable 和 JS - localStorage)。

为此,我需要获取信息,这是草图运行的模式。我需要在运行时执行此操作,只是为了避免为所有平台保留不同的源。

我正在查看文档,但在主题中没有找到任何内容。我的 Google 研究也让我想到,甚至没有人要求这样做......

我正在考虑使用 try/catch 来检查 Java 中存在但 JS 中不存在的一些函数,但这似乎相当不优雅,而且我找不到合适的方法。

我发现的是:

try {
  PApplet a;
  a = new PApplet();
  mode = "JAVA";
}
catch(Throwable e) {
  mode = "JS";
}

这个可以区分Java和JavaScript,但是不能识别Android...

总结一下 - 什么是最好的区分方式,我是在运行时以 JS 还是 Java 模式运行草图?

最佳答案

好的,我已经找到了使用 try/catch 的非常好的方法:

String mode;

mode = "unknown";

try {
  java.lang.Object a;
  a = new java.lang.Object();
  mode = "JAVA";
}
  catch(Throwable e) {
  mode = "JS";
}

这可以区分JavaScript和Java/Android,但无法区分Android和Java。但由于差异很小,这不会对我造成严重的兼容性问题。

如果有人知道如何更好地做到这一点 - 请发布您的答案!

关于java - 如何区分Processing sketch运行的模式(Java/JS/Android)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22194346/

相关文章:

java - 在 Word 中配置内容控件以添加新行

java - 在较长时间段内监控 Java 中的代码指标

javascript - 记住 slider 位置和延迟加载 - bxslider

javascript - JQuery on change 以一种形式而不是另一种形式工作

android - ScrollView 后面的 ViewPager 不听触摸手势

java - 类作为用户定义的数据类型

java - 扫描仪 NoSuchElementException

javascript - 在一定高度设置滚动条起始位置

android - 我使用 Java MSN Messenger 库的程序出错

android - React Native 获取访问 token 社交网络