Java自动生成Mvp框架目录结构
2017-02-23 14:33
357 查看
在朋友的帮助下,写了一个自动生成Mvp框架目录结构的工具类,分享出来。(。・`ω´・)
2、我的build.gradle 如下
3、将上面的代码copy 到新建的moudle 下,因为是java main方法,所以在AS 下运行的话,需要添加java 运行环境。
4、修改你想生成的类名,文件目录结构
5、修改你的工程目录结构
6、最后完成了,直接run 就得了。你也可以根据自己的需求,再做修改。
package com.example; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; /*import cn.lebaodai.common.util.FormData.FieldData; import cn.lebaodai.lbd.dao.impl.ActivityDao; import cn.lebaodai.lbd.vo.Activity;*/ /** * Created by Aloha <br> * -explain Mvp目录结构自动生成 * @Date 2017/2/13 9:48 */ public class AutoGenerationMvp { static String className = "Sample"; static String modelName = className+"Model"; static String viewName = "I"+className+"View"; static String viewActivityName = className+"Activity"; static String viewFragmentName = className+"Fragment"; static String presenterName = className+"Presenter"; static String modelPackage = "model/sample"; static String viewPackage = "ui/activity/sampleactivity/view"; static String presenterPackage = "ui/activity/sampleactivity/presenter"; static String iMoudel = createIMoudel(); static String moudel = createMoudel(); static String iView = createIView(); static String view = createActivityView(); static String iPresenter = createIPresenter(); static String presenter = createPresenter(); /** * @param args */ public static void main(String[] args){ saveFile("I"+modelName, iMoudel,modelPackage); saveFile(modelName, moudel,modelPackage); saveFile(viewName, iView,viewPackage); saveFile(viewActivityName, view,viewPackage); saveFile("I"+presenterName, iPresenter,presenterPackage); saveFile(presenterName, presenter,presenterPackage); } public static String createIMoudel(){ String text=""; text+="package aloha.shiningstar.lockerstudy."+modelPackage.replaceAll("/",".")+";\r"; text+="\r"; text+="import aloha.shiningstarbase.base.IBaseModel"+";\r"; text+="\r"; text+="/**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain\r"; text+=" * @version 1.0\r"; text+=" */\r"; text+="public interface I"+modelName+" extends IBaseModel"+" {\r"; text+="\r"; text+=" void sampleFuntion();\r"; text+="\r"; text+="}\r"; return text; } public static String createMoudel(){ String text=""; text+="package aloha.shiningstar.lockerstudy."+modelPackage.replaceAll("/",".")+";\r"; text+="\r"; text+="/**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain\r"; text+=" * @version 1.0\r"; text+=" */\r"; text+="public class "+modelName+" implements I"+modelName+" {\r"; text+="\r"; text+=" @Override\r"; text+=" public void sampleFuntion() {\r"; text+="\r"; text+=" } \r"; text+="\r"; text+="}\r"; return text; } public static String createIView(){ String text=""; text+="package aloha.shiningstar.lockerstudy."+viewPackage.replaceAll("/",".")+";\r"; text+="\r"; text+="import aloha.shiningstarbase.base.IBaseView;\r"; text+="\r"; text+="/**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain\r"; text+=" * @version 1.0\r"; text+=" */\r"; text+="public interface "+viewName+" extends IBaseView"+" {\r"; text+="\r"; text+=" void showDataSampleFuntion();\r"; text+="\r"; text+="}\r"; return text; } public static String createActivityView(){ String text=""; text+="package aloha.shiningstar.lockerstudy."+viewPackage.replaceAll("/",".")+";\r"; text+="\r"; text+="import aloha.shiningstarbase.base.BaseActivity;\r"; text+="import aloha.shiningstar.lockerstudy.R;\r"; text+="import aloha.shiningstar.lockerstudy.ui.activity.sampleactivity.presenter."+presenterName+";\r"; text+="\r"; text+="/**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain\r"; text+=" * @version 1.0\r"; text+=" */\r"; text+="public class "+viewActivityName+" extends BaseActivity <"+ viewName +","+presenterName+"> " + "implements "+viewName+" {\r"; text+="\r"; text+=" @Override\r"; text+=" protected void init() {\r"; text+="\r"; text+=" }\r"; text+="\r"; text+=" @Override\r"; text+=" protected "+presenterName+" CreatePresenter(){\r"; text+=" return new "+presenterName+"();\r"; text+=" }\r"; text+="\r"; text+=" @Override\r"; text+=" protected int getLayoutID() {\r"; text+=" return R.layout.activity_main;\r"; text+=" }\r"; text+="\r"; text+=" @Override\r"; text+=" public void showDataSampleFuntion() {\r"; text+="\r"; text+=" }\r"; text+="\r"; text+="}\r"; return text; } public static String createIPresenter(){ String text=""; text+="package aloha.shiningstar.lockerstudy."+presenterPackage.replaceAll("/",".")+";\r"; text+="\r"; text+="/**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain\r"; text+=" * @version 1.0\r"; text+=" */\r"; text+="public interface I"+presenterName+" {\r"; text+="\r"; text+=" //定义presenter 接口回调\r"; text+=" void getDataSampleFuntion(String request);\r"; text+="\r"; text+="}\r"; return text; } public static String createPresenter(){ String text=""; text+="package aloha.shiningstar.lockerstudy."+presenterPackage.replaceAll("/",".")+";\r"; text+="\r"; text+="import aloha.shiningstarbase.base.BasePresenter;\r"; text+="import aloha.shiningstar.lockerstudy.ui.activity.sampleactivity.view."+viewName+";\r"; text+="\r"; text+="/**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain\r"; text+=" * @version 1.0\r"; text+=" */\r"; text+="public class "+presenterName+" extends BasePresenter<"+viewName+"> implements "+"I"+presenterName+ " {\r"; text+="\r"; text+=" public "+presenterName+"() {\r"; text+=" //获取model\r"; text+="\r"; text+=" }\r"; text+="\r"; text+=" /**\r"; text+=" * 实现presenter接口方法\r"; text+=" */\r"; text+=" @Override\r"; text+=" public void getDataSampleFuntion(String request){\r"; text+="\r"; text+=" }\r"; text+="\r"; text+=" /**\r"; text+=" * Created by Aloha <br>\r"; text+=" * -explain Model层请求数据,BasePresent层统一做网络请求,回调到子类presenter监听\r"; text+=" * @Date 2017/01/01 12:00\r"; text+=" */\r"; text+=" @Override\r"; text+=" protected void onResponseAsyncDeal(int status, String message, String result, String requestID) {\r"; text+="\r"; text+=" }\r"; text+="\r"; text+="}\r"; return text; } public static void saveFile(String classname, String text,String pageName) { System.out.print("text:"+text); System.out.print("创建java类:" + classname); String filepath = Thread.currentThread().getContextClassLoader() .getResource(".").getPath(); System.out.print("filepath:"+filepath); String[] fileP = filepath.split("target"); System.out.print(fileP[0]); /*File file = new File(fileP[0] + "C:/Android/QwQ/LockerStudy/app/src/main/java/aloha/shiningstar/lockerstudy/"+pageName+"/" + firstUpper(classname) + ".java");*/ /* File file = new File("F\:\lebaodai\myelicpseWs\trunk\src\main\java\cn\lebaodai\lbd\vo\Msg_push.java");*/ //你的工程目录 File file = new File("C:/Android/QwQ/LockerStudy/app/src/main/java/aloha/shiningstar/lockerstudy/"+pageName+"/" + firstUpper(classname) + ".java"); if (file.exists()) { file.delete(); } //创建文件夹,2层 if (!file.getParentFile().getParentFile().exists()) file.getParentFile().getParentFile().mkdir(); if (!file.getParentFile().exists()) file.getParentFile().mkdir(); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } PrintWriter out; BufferedWriter writer; try { out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file.getPath()),"GBK"))); /*writer = new BufferedWriter( new FileWriter(new File(file.getPath())),"asd");*/ out.write(text); out.close(); } catch (IOException e) { e.printStackTrace(); } } public static String firstUpper(String text){ String a1 = text.substring(0,1); String a2=text.substring(1); return a1.toUpperCase()+a2; } }
使用方法如下:
1、New 一个 Java Moudle2、我的build.gradle 如下
3、将上面的代码copy 到新建的moudle 下,因为是java main方法,所以在AS 下运行的话,需要添加java 运行环境。
4、修改你想生成的类名,文件目录结构
5、修改你的工程目录结构
6、最后完成了,直接run 就得了。你也可以根据自己的需求,再做修改。
相关文章推荐
- gradle - 自动生成java工程标准目录
- ThinkPHP框架报错:项目目录不可写,目录无法自动生成! 请使用项目生成器或者手动生成项目目录~
- [thinkPHP5项目实战_05]自动生成目录结构
- JavaWeb项目中WEB-INF目录下class文件自动生成以及显示
- Thinkphp5.0实战开发二------自动生成目录结构
- java自动生成 框架
- Java Web开发中可否自动生成结构一致的代码?
- 在使用Mybatis框架的JavaWeb项目中通过Mybatis Generator逆向工程自动生成Java类文件
- ThinkPHP5学习笔记(1)-自动生成目录结构
- 如何开发一个java开源框架-----Jvn框架之实现自动生成在线文档(第七讲)
- 也谈Eclipse未自动在gen目录下生成R.java
- android mvp快速开发框架介绍(自动生成android代码工具介绍)
- javapoet:源文件自动生成框架
- 程序文档,框架结构自动生成工具
- BeeFrameWork框架下的ActiveAndroid自动生成数据库表Java文件
- Maven利用Archetype自动生成项目目录结构
- java自动生成目录树
- vue新框架nux通过文件目录自动生成路由
- java实现自动生成多级目录
- Thinkphp5.0实战开发------自动生成目录结构