private int loopProcess(Object object, int over){
        	if(object.getClass().isArray()){
            	int len = Array.getLength(object);
        		int preArrayDoor = -1;
            	for(int i=0; i<len; i++){
        			Object o = Array.get(object, i);
        			int curArrayDoor = loopProcess(o, over + 1);
        			if(preArrayDoor == -1 || preArrayDoor == curArrayDoor){
        				preArrayDoor = curArrayDoor;
        			}else if(preArrayDoor != curArrayDoor){
                        throw new IllegalArgumentException("This array exist different dim sub-array : " + ArrayUtils.toString(this.array));
        			}
        		}
        		return preArrayDoor == - 1 ? over + 1 : preArrayDoor;
        	}else{
        		try{
                    process((KernelParam) object);
                }catch(ClassCastException e){
                	throw new IllegalArgumentException("exception occur when " + KernelArrayValue.this.toString(), e);
                }
            	return over;
        	}
        }