4

我一直在解决 Project Euler 中的一些问题,并且在此过程中,我编写了许多有用的方法(用 Java 编写),我可能希望在其他 Java 项目中使用这些方法。我希望能够以从 java.lang.math 调用函数的方式调用它们,所以如果我有一个方法 primeFactor() 我可以使用MyMathMethods.primeFactor(number). 我该怎么办?我会制作某种可以导入的包吗?我会创建一个包含我所有有用的数学函数的超类,并让我在新项目中使用的任何类扩展它吗?可能有多种方法可以做到这一点,但我不知道什么是最好的。提前致谢。

4

5 回答 5

3

将您的实用程序方法标记为public static.将包含这些实用程序方法的类打包在 jar 中。在您要使用的项目中添加/引用该 jar。然后在您的代码中,您可以以静态方式调用它们 lke :MyUtilityClass.myUtilityMethod();

于 2013-07-15T03:34:14.200 回答
2

对于这种情况,最好的办法是在有意义的包中工作并制作它们的 jar
您可以创建一个包,例如

/* File name : Animal.java */
package animals;

    interface Animal {
       public void eat();
       public void travel();
    }


也在上课

package animals;

/* File name : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

您可以像导入它们一样
import animals.*;或更具体import animals.MammalInt;

现在您可以制作 jar 文件,将其导入您的项目并使用它的方法
您可以通过此命令轻松完成
jar cmf MyJar.jar Manifest.txt MyPackage/*.class
有关 jar 创建的更多详细信息,请参阅此
作为旁注:小心关于成员和函数在打包时的可见性
因为在我们使用它们时,使用和可访问性很重要

于 2013-07-15T03:41:04.090 回答
0

您可以仅使用您的 util 类创建单独的 java 项目,然后创建 jar 文件并导入任何其他项目。

于 2013-07-15T03:32:49.737 回答
0

对包的错误理解是包中定义的任何类对所有其他类都是可见的。根据我的经验,这不是真的。如果您有包含实用程序样式方法的类,您想在另一个类中提供?只需在您需要该方法的类中声明该类的新实例。例如... private MathUtilsClass mathUtilsClass = new MathUtilsClass(): 然后您想从此类调用的任何方法都使用新标识符,例如 mathUtilsClass.greatFunction( ); 这非常简单,应该可以解决您的问题。

于 2014-03-10T03:44:45.483 回答
0

只需实例化类。就像您的示例一样,如果您有一个MyMathMethods带有该函数的primeFactor(number)类,那么在其他类中,只需使用类似private MyMathMethods myMathMethods;. 现在,要简单地调用该函数,myMathMethods.primeFactor(number);您可能还需要导入它的包。

于 2013-07-15T03:34:30.783 回答