簡體   English   中英

如何創建動態jar文件以從入口點(主)獲取多個類及其方法的訪問而無需導入Java?

[英]How to create dynamic jar file to get access of multiple classes and its methods from an entry point(main) without importing in java?

我想從入口點(主)訪問一個或多個類而不導入包。 例如:

package com.ank.dynamicJarFileCreation;

public class revDemo {
    public static int reverseNumber(int n)
     {
         int rem,rev=0;
         while(n>0)
         {
             rem=n%10;
             rev=rev*10 + rem;
             n=n/10;
         }
         return rev;
     }
}

上面是revDemo類,我想從下面的入口點訪問上面的reverseNumber(int n)方法。 例如:

public class revCall {

public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {

    int n=485154;

    System.out.println(revDemo.reverseNumber(n));

或者通過這種方式。

 Class cls = Class.forName("reverseDemo");
        Object obj =  cls.newInstance();

        System.out.print("Class Name"+cls.getName());
        Object obj =  null; //It is a object of -> com.ank.dynamicJarFileCreationo

        System.out.println(((com.ank.dynamicJarFileCreation)obj).reverseNumber(n));

    }

}

您非常接近自己的解決方案。 實際上,您是使用Class.forName()和newInstance()函數動態創建所需類的實例的。

下一步是通過方法名稱(例如reverseNumber)從Class中獲取Function,並使用創建的revDemo實例執行該功能。

Class revDemoClazz = Class.forName("com.ank.dynamicJarFileCreation.revDemo");
Object revDemoObj = revDemoClazz.newInstance();
Method reverseNumberMethod = revDemoClazz.getMethod("reverseNumber", Integer.class);
reverseNumberMethod.invoke(revDemoObj, 12345);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM