我正在使用SimpleXml改装2.0.0-beta1.我想从REST服务中检索一个简单(XML)资源.使用SimpleXML编组/解组Simple对象可以正常工作.
使用此代码时(转换后的2.0.0代码形式):
final Retrofit rest = new Retrofit.Builder()
.addConverterFactory(SimpleXmlConverterFactory.create())
.baseUrl(endpoint)
.build();
SimpleService service = rest.create(SimpleService.class);
LOG.info(service.getSimple("572642"));
Run Code Online (Sandbox Code Playgroud)
服务:
public interface SimpleService {
@GET("/simple/{id}")
Simple getSimple(@Path("id") String id);
}
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
Exception in thread "main" java.lang.IllegalArgumentException: Unable to create call adapter for class example.Simple
for method SimpleService.getSimple
at retrofit.Utils.methodError(Utils.java:201)
at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:51)
at retrofit.MethodHandler.create(MethodHandler.java:30)
at retrofit.Retrofit.loadMethodHandler(Retrofit.java:138)
at retrofit.Retrofit$1.invoke(Retrofit.java:127)
at com.sun.proxy.$Proxy0.getSimple(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我知道通过Call作品包装返回类型.但是我希望服务将业务对象作为类型返回(并在同步模式下工作).
UPDATE
添加额外的依赖项后,并.addCallAdapterFactory(RxJavaCallAdapterFactory.create())根据不同的答案建议,我仍然会收到此错误:
Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for class simple.Simple. Tried:
* retrofit.RxJavaCallAdapterFactory
* retrofit.DefaultCallAdapter$1
Run Code Online (Sandbox Code Playgroud) 我需要像(安全库存文件)这样的东西:
[example]
127.0.0.1 timezone="Europe/Amsterdam" locales="en_US","nl_NL"
Run Code Online (Sandbox Code Playgroud)
但是,ansible不会将"locales"识别为列表.
我使用 Visual Studio Code (1.8.1) 为 NodeJS 7.3 编写 ECMAScript 6(因此目前没有TypeScript)。
我想在每次保存脚本文件时从命令行 ( node ${file})运行当前脚本。这可能吗?
需要明确的是:NodeJS 不是作为服务器运行,而是用于执行 cli 脚本。
注意:这与性能问题无关.我只观察到无法解释/理解的性能差异.
在对一些针对Java 9的新开发的代码进行基准测试时,我发现了一些奇怪的东西.HashMap带有5个密钥的(非常)简单基准测试表明,Java 9比Java 8慢得多.这可以解释一下,还是我的(基准)代码完全错误?
码:
@Fork(
jvmArgsAppend = {"-Xmx512M", "-disablesystemassertions"}
)
public class JsonBenchmark {
@State(Scope.Thread)
public static class Data {
final static Locale RUSSIAN = new Locale("ru");
final static Locale DUTCH = new Locale("nl");
final Map<Locale, String> hashmap = new HashMap<>();
public Data() {
hashmap.put(Locale.ENGLISH, "Flat flashing adjustable for flat angled roof with swivel");
hashmap.put(Locale.FRENCH, "Solin pour toit plat inclinée");
hashmap.put(Locale.GERMAN, "Flachdachkragen Flach Schrägdach");
hashmap.put(DUTCH, "Plakplaat vlak/hellend dak inclusief glijschaal");
hashmap.put(RUSSIAN, "?????? ????? ??????? …Run Code Online (Sandbox Code Playgroud) 从帮助信息:
-J<flag> Pass <flag> directly to the runtime system.
Use one -J for each runtime flag or flag argument
-R<flag> Pass <flag> to the remote runtime system.
Use one -R for each remote flag or flag argument
Run Code Online (Sandbox Code Playgroud)
我在工具文档和jshell用户指南中都找不到解释.
另外,什么是jshell上下文中的"远程运行时系统"?
我们目前使用 MySQL 5.7 并通过mysql-config-editor存储密码。它将登录路径存储在加密文件中.mylogin.cnf。
MariaDB 不支持此功能(并认为这是一个坏主意)。那么,MariaDB 的做法是什么?
PostgreSQL 提供~/.pgpass了这个目的。
我要解析YAML Front Matter的java一样jekyll,所以Iooked到源代码,并且发现这个,但我不能让它多大意义(我不知道很多红宝石).
所以我的问题是,我如何解析YAML Front Matterjava?
我的classpath中有snakeyaml,我YAML Front Matter将从markdown文件解析,我使用pegdown
在静态方法(Annotated with @CallerSensitive)中,我尝试获取调用类的名称:
@CallerSensitive
public static void someMethod() {
String name = sun.reflect.Reflection.getCallerClass().getName();
...
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
java.lang.InternalError: CallerSensitive annotation expected at frame 1
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
参考
UPDATE
我用java 8(U25),并且该方法getCallerClass()是不弃用(getCallerClass(int)已过时),为可以拆卸的字节码时,可以看出:
$ /usr/lib/jvm/java-8-oracle/bin/javap -cp /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar -verbose sun.reflect.Reflection > bytecode
Run Code Online (Sandbox Code Playgroud)
输出(仅显示相关行)
Classfile jar:file:/usr/lib/jvm/jdk1.8.0_25/jre/lib/rt.jar!/sun/reflect/Reflection.class
Last modified Sep 17, 2014; size 6476 bytes
Compiled from "Reflection.java"
public class sun.reflect.Reflection
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#78 = Utf8 Lsun/reflect/CallerSensitive;
#80 = Utf8 …Run Code Online (Sandbox Code Playgroud) 我的构建因 checkstyle 错误(不是警告)而失败。只要有任何 checkstyle 错误,我希望警告不会显示在(maven 生成的)输出中。如何实现这一目标?
# First is error, should be reported, second is a warning, should not be reported in the maven output.
...data/Decimal.java:286:31: '7L' is a magic number.
.../data/Decimal.java:296:5: warning: Missing a Javadoc comment.
Run Code Online (Sandbox Code Playgroud)
更新:见我的评论。这个问题不是关于抑制特定警告!这只是关于不在 maven 输出中显示所有警告!
我通过 snap 在 Ubuntu 18.04 上安装了 Netbeans 11.2。
现在我想配置 Netbeans,修改netbeans.conf. 该文件放置在/snap/netbeans/current/netbeans/etc/只读文件系统中并安装为只读文件系统。所以我认为你不应该在这里编辑这个文件。
如果经典方式(编辑netbeans.conf)被阻止,我该如何配置 Netbeans?
注:我要设置netbeans_jdkhome="~/.sdkman/candidates/java/latest/".
更新
这有效:
netbeans --jdkhome ~/.sdkman/candidates/java/latest
Run Code Online (Sandbox Code Playgroud)