这可能看似简单(甚至是愚蠢的),但我想不出一个搜索我想要的好方法,即使标题可能也不完全正确。
我创建了一个标准的独立java程序,其中main()函数可以实现我想要的功能。我意识到我可能需要使用我将来可能需要的其他程序来调用此程序。所以我决定创建一个构造函数,使我可以从任何java类调用
我的问题是这种方法是否正确
public class GetUploadFiles {
private static String[] arguments;
/**
* Constructor
* expected a String[] containing the information needed
* @param args the arguments passed
*/
public GetUploadFiles(String[] args){
arguments=args;
}
/**
* start the process of creating and uploading the zip file according to the arguments passed to the constructor
* @throws IOException
*/
public static void upload() throws IOException{
startProcess(arguments);
System.exit(0);
}
public static void main(String[] args) throws IOException {
startProcess(args);
System.exit(0);
}
/**
* start the process
* @param args
* @throws IOException
*/
public static void startProcess(String[] args) throws IOException{
//my code is here
}
}//class
谢谢
答案 0 :(得分:2)
我认为这是一个可以接受的解决方案。需要注意的一点是,您的上传方法不应该是静态的。我个人会推荐这样的东西:
public class GetUploadFiles {
private static String[] arguments;
public GetUploadFiles(String[] args){
arguments=args;
}
/**
* start the process of creating and uploading the zip file according to the arguments passed to the constructor
*/
public void upload() throws IOException{
startProcess()
}
public static void main(String[] args) throws IOException {
new GetUploadFiles(args).upload();
}
private void startProcess() throws IOException{
//my code is here
//Can just use arguments in here since class is no longer static.
}
}
这有点简化了您的代码并标准化了您对该类的使用。
答案 1 :(得分:0)
这取决于您的要求,但总的来说,这是一种有效的方法,根据我的经验,它是一个常见的习惯用法,它有一个可以被Java程序导入和使用的实用程序类,但也是可以通过包含main方法从命令行使用。
您想要的一个更改,不要在上传中调用System.exit(0),否则将退出调用程序。你不需要在main中使用System.exit(0),尽管它并没有真正伤害像上传那样的东西。