package com.example.administrator.demo;
import com.example.administrator.demo.common.utils.LogUtil;
import com.example.administrator.demo.main.bean.MainEntity;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2021/6/4.
*/
public class TestMain {
public static void main(String[] args) {
getPageName();
}
/**
* 获取Entity对象下文件
* */
public static void getPageName() {
Object entity = new MainEntity();
String simpleName = entity.getClass().getSimpleName();
simpleName = simpleName.replace("Entity", "");
String packageName = entity.getClass().getPackage().getName();
String packageName1 = packageName.replace(".", "\\");
String entityPackage = "D:" + File.separator + "filepath" + File.separator + packageName1;
String entityPackageAdapter = entityPackage + File.separator + "adapter" + File.separator;
String entityPackageModel = entityPackage + File.separator + "model" + File.separator;
String entityPackagePresenter = entityPackage + File.separator + "presenter" + File.separator;
String entityPackageView = entityPackage + File.separator + "view" + File.separator;
String entityPackageBean = entityPackage + File.separator + "bean" + File.separator;
String res = entityPackage + File.separator + "res" + File.separator;
/**生成文件夹*/
List<String> list = new ArrayList<>();
list.add(entityPackageAdapter);
list.add(entityPackageModel);
list.add(entityPackagePresenter);
list.add(entityPackageView);
list.add(entityPackageBean);
list.add(res);
for (int i = 0; i < list.size(); i++) {
File testFile = new File(list.get(i));
System.out.println(list.get(i));
if (!testFile.exists()) {
testFile.mkdirs();
}
}
/**生成文件*/
list.clear();
list.add(entityPackageAdapter + simpleName + "Adapter.java");
list.add(entityPackageModel + simpleName + "Model.java");
list.add(entityPackageModel + "I" + simpleName + "Model.java");
list.add(entityPackagePresenter + simpleName + "Presenter.java");
list.add(entityPackagePresenter + "I" + simpleName + "Presenter.java");
list.add(entityPackageView + simpleName + "Activity.java");
list.add(entityPackageView + "I" + simpleName + "View.java");
list.add(res + "activity_" + simpleName.toLowerCase() + ".xml");
for (int i = 0; i < list.size(); i++) {
try {
File testFile = new File(list.get(i));
System.out.println(list.get(i));
if (testFile.exists()) {
testFile.delete();
}
if (!testFile.exists()) {
testFile.createNewFile();
}
BufferedWriter bw = new BufferedWriter(new FileWriter(testFile));
if (i != list.size() - 1) {
bw.write("package " + packageName + ";\r\n");
} else {
bw.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
bw.write("<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n");
bw.write(" xmlns:tools=\"http://schemas.android.com/tools\"\r\n" +
" android:layout_width=\"match_parent\"\r\n" +
" android:layout_height=\"match_parent\"\r\n" +
" android:orientation=\"vertical\"\r\n" +
" >\r\n" +
"</LinearLayout>");
}
String[] split = list.get(i).split("\\\\");
String className = split[split.length - 1].replace(".java", "");
switch (i) {
case 0:
bw.write("public class " + className + "{\r\n\r\n}");
break;
case 1:
bw.write("public class " + className + " extends BaseModel implements " + "I" + simpleName + "Model" + "{\r\n\r\n}");
break;
case 2:
bw.write("public interface " + className + "{\r\n\r\n}");
break;
case 3:
bw.write("public class " + className + " extends BasePresenter<IMainView> implements " + "I" + simpleName + "Presenter" + "{\r\n" +
" MainModel model;\r\n" +
" public MainPresenter(){\r\n" +
" model = new MainModel();\r\n" +
" }"
+"\r\n}");
break;
case 4:
bw.write("public interface " + className + "{\r\n\r\n}");
break;
case 5:
bw.write("public class " + className +" extends BaseMvpActivity<"+simpleName+"Presenter"+"> implements "+ "I" + simpleName + "View" + "{\r\n" +
" @Override\r\n" +
" protected void onCreate(Bundle savedInstanceState) {\r\n" +
" super.onCreate(savedInstanceState);\r\n" +
" setContentView(R.layout."+ "activity_" + simpleName.toLowerCase()+");\r\n"+
" \r\n}"+
"\r\n}");
break;
case 6:
bw.write("public interface " + className +" extends IBaseView"+"{\r\n\r\n}");
break;
}
bw.close();
} catch (Exception e) {
}
}
}
/**
* 将Object对象里面的属性和值转化成Map对象
*
* @param obj
* @return
* @throws IllegalAccessException
*/
public static Map<String, Object> objectToMap(Object obj) throws IllegalAccessException {
Map<String, Object> map = new HashMap<String, Object>();
Class<?> clazz = obj.getClass();
for (Field field : clazz.getDeclaredFields()) {
field.setAccessible(true);
String type = field.getType().toString();
String fieldName = field.getName();
Object value = field.get(obj);
map.put(fieldName, type);
}
return map;
}
}
项目地址https://gitee.com/chen_xiao_hong/android-template.git
java代码生成器,根据entity实体进行分析生成
于 2021-06-07 18:28:14 首次发布