1

我想在同一个 JVM 中的两个组件之间实现拖放。我正在传递一个不可序列化的对象数组,因此我试图找到要传入的 javaJVMLocalObjectMimeType 的正确咒语。但是,我不断收到非法参数异常。

例如,如果我有 ExampleClass

附加类参数有效:

    new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType+";class="+ExampleClass.class.getName());

但使用数组类型失败:

    new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType+";class="+ExampleClass[].class.getName());

抛出:

java.lang.IllegalArgumentException: failed to parse:application/x-java-jvm-local-objectref;class=[LExampleClass

啊!摇摆中的拖放是一团糟!

4

1 回答 1

2

试试这个:

new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
               ";class=\""+ExampleClass.class.getName() + "\"");

由于数组的名称(例如“[Ljava.lang.Object;”)具有特殊字符,因此您必须引用“class”参数。

于 2009-02-23T19:35:49.907 回答