使用sezpoz进行混合java scala项目

时间:2014-06-12 16:00:57

标签: java eclipse scala annotations

我在Eclipse中编译的混合java / scala项目中使用sezpoz。在查找java注释时,它完全正常(在这里提到一些修改之后:http://imagej.net/pipermail/imagej-devel/2011-January/000305.html

    @Target({ ElementType.TYPE, ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.SOURCE)
@Indexable(type = TIPLPluginFactory.class)
public static @interface PluginInfo {
    /**
     * The name of the plugin (VfilterScale is Filter so is FilterScale)
     * @return
     */
    String pluginType();
...
}

用作标注插件的注释,并使用以下函数读取它们。

public static List<PluginInfo> getAllPlugins() {
    for (final IndexItem<PluginInfo, TIPLPluginFactory> item : Index.load(
            PluginInfo.class, TIPLPluginFactory.class)) {
        final PluginInfo bName = item.annotation();
...

java插件在类

中有这个
@TIPLPluginManager.PluginInfo(pluginType = "DistGrow",
        desc="Full memory distance growing",
        sliceBased=false)
final public static TIPLPluginManager.TIPLPluginFactory myFactory = new TIPLPluginManager.TIPLPluginFactory() {
    @Override
    public ITIPLPlugin get() {
        return new DistGrow();
    }
};

scala插件具有几乎相同的代码

@TIPLPluginManager.PluginInfo(pluginType = "GrayAnalysis",
        desc="Spark-based gray value analysis",
        sliceBased=false,sparkBased=true)
val myFactory: TIPLPluginManager.TIPLPluginFactory = new TIPLPluginManager.TIPLPluginFactory() {
    override def get():ITIPLPlugin = {
        return new ShapeAnalysis;
    }
};

知道为什么这不起作用或者如何修改它以使其正常工作?一个简单的黑客就是让一个新的java类具有所有这些注释来制作scala但是这看起来不是很优雅

0 个答案:

没有答案