小编Flo*_*oFu的帖子

Java动态加载插件

我想创建一个可以动态加载插件的应用程序,但我没有在互联网上找到任何文献.

困难的是:我事先不知道这个名字.

例如,我有一个插件界面:

public interface Plugin {
    public static Plugin newPlugin();
    public void executePlugin(String args[]);
}
Run Code Online (Sandbox Code Playgroud)

这样在jar文件中实现插件的每个Class 都在列表中实例化:

Method method = classToLoad.getMethod ("newPlugin");
mylist.add(method.invoke(null);
Run Code Online (Sandbox Code Playgroud)
  1. 第一个问题是,我不能在接口中使用静态方法.
  2. 第二个问题是,我不知道如何找到实现接口的所有类

谢谢你的帮助.

java plugins runtime classpath

6
推荐指数
1
解决办法
7871
查看次数

是否可以代理任何功能

我使用一个带有不同参数的函数的(C)库,但在出现错误时总是返回大于零的int:

int functionA(int param1, char param2); /* return an error code on failure, 0 otherwise */
int functionB(LIB_BOOLEAN param1);      /* return an error code on failure, 0 otherwise */
// ...
Run Code Online (Sandbox Code Playgroud)

我想将它们全部变为异常准备:

if (functionA(param1, param2) > 0)
{ throw std::runtime_error("Method failed"); }
Run Code Online (Sandbox Code Playgroud)

是否可以编写一个模板来为所有方法执行一次?

编辑:我的想法是避免每次使用它们时检查每个函数的结果.

c++

2
推荐指数
1
解决办法
91
查看次数

将 unsigned int 的最大值转换为 int 并期望结果为 -1 是否可移植?

我找到了一个 C++ 代码,我们将初始化为最大值的 unsigned int 32 转换为有符号 int 并期望它是-1. 它在经过测试的编译器上运行良好,但它真的可移植吗?

int GetBusinessDataID()
{
    u32_t id = ~0;

    // Some code that may return a valid ID.

    return id; // Here we expect to return -1.
}
Run Code Online (Sandbox Code Playgroud)

c++ unsigned implicit-conversion

2
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×2

classpath ×1

implicit-conversion ×1

java ×1

plugins ×1

runtime ×1

unsigned ×1