首页>代码>java类方法解析器>/java类方法解析器/codereader3/src/com/wgtgt/MethodUtil.java
package com.wgtgt;

import java.util.ArrayList;

public class MethodUtil {

	public static void add(ArrayList<Method> methodList, String methodName,
			String returnType, String paramListFullName) {
		if("while".equals(methodName)||"if".equals(methodName)||"for".equals(methodName)||"switch".equals(methodName)||"catch".equals(methodName)){
			return;
		}
		String name = methodName;
		ArrayList<Param> paramList=new ArrayList<Param>();
		paramListFullName=paramListFullName.trim();
		if("".equals(paramListFullName)){

		}else{
			String[]params=paramListFullName.split(",");
			for (int i = 0; i < params.length; i++) {
				String paramFormat=params[i].trim();
				String[]param=split(paramFormat);
				String paramType ="Object";
				String paramName = "args";
				if(param.length>1){
					paramType = param[0];
					paramName = param[1];
					if(paramName.endsWith("[]")){
						String[]paramNameSplit=splitByKuoHao(paramName);
						String paramNameSplitName=paramNameSplit[0];
						String paramNameSplitType=paramNameSplit[1];
						paramType+=paramNameSplitType;
						paramName=paramNameSplitName;
					}
				}
				Param paramEvery=new Param(paramType,paramName);
				paramList.add(paramEvery);
			}
		}
		Method method=new Method(name, returnType, paramList);
		methodList.add(method);
	}

	public char lastChar(char[]chs,int index){
		final int len=chs.length;
		if(index<0){
			return (char)1;
		}else if(index>=len){
			return (char)2;
		}else{
			return chs[index];
		}
	}
	public static String[]splitByKuoHao(String str){
		String[]result=new String[2];
		char[]chs=str.toCharArray();
		StringBuilder type = new StringBuilder();
		StringBuilder name = new StringBuilder();
		for (int i = 0; i < chs.length; i++) {
			char every=chs[i];
			if(every=='['||every==']'){
				type.append(every);
			}else{
				name.append(every);
			}
		}
		result[0]=type.toString();
		result[1]=name.toString();
		return result;
	}
	public static String[]splitByKuoHao2(String str){
		if(str.endsWith("[]")){
			return splitByKuoHao(str);
		}else{
			String[]result=new String[2];
			result[0]=str;
			result[1]="";
			return result;
		}
	}
	public static String[]split(String paramList){
		String paramListFormat=paramList.trim();
		char[]chs=paramListFormat.toCharArray();
		ArrayList<String>list=new ArrayList<String>();
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < chs.length; i++) {
			char ch=chs[i];
			if(Character.isWhitespace(ch)||chs[i]=='['||chs[i]=='<'){
				if(ch=='['){
					sb.append('[');
				}
				boolean jianKuoHaoInner=false;
				if(ch=='<'){
					sb.append('<');
					jianKuoHaoInner=true;
				}
				while(Character.isWhitespace(chs[++i])||chs[i]=='['||chs[i]==']'||jianKuoHaoInner){
					if(Character.isWhitespace(chs[i])){
						
					}else if(chs[i]=='['){
						sb.append('[');
					}else if(chs[i]==']'){
						sb.append(']');
					}else{
						sb.append(chs[i]);
						if(chs[i]=='>'){
							jianKuoHaoInner=false;
						}
					}
				}
				list.add(sb.toString());
				sb = new StringBuilder(chs[i]+"");
				continue;
			}
			sb.append(ch);
		}
		list.add(sb.toString());
		String[]result=new String[list.size()];
		result=list.toArray(result);
		return result;
	}
}

最近下载更多
j597302044  LV1 2021年5月14日
b012369874  LV2 2020年5月23日
htbbbzhs  LV1 2018年3月20日
878102433  LV2 2017年9月13日
w8692414  LV2 2017年8月7日
codesheng  LV2 2017年6月27日
luffy018  LV2 2017年5月15日
www0_1com  LV3 2017年5月10日
squeer  LV1 2016年11月29日
难忘vs回忆  LV2 2016年11月15日
最近浏览更多
wuziayng1232  LV10 2023年2月20日
2812151886  LV1 2022年1月10日
darkerhealerhuji  LV2 2021年11月12日
b012369874  LV2 2020年5月23日
0312wangchen  LV26 2019年9月14日
sdtzwss  LV12 2019年1月28日
lw19900921  LV25 2018年9月19日
jobpan  LV1 2018年9月4日
zuoyina 2018年8月31日
暂无贡献等级
kenpfang  LV18 2018年4月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友