这是调用的类:
private static class ExpressionGet implements Get
    {
        private FactExpression expression;
        public ExpressionGet(FactExpression expression)
        {
            this.expression = expression;
        }        @Override
        public Object getValue(FLOW_LOG flowLog)
        {
            MethodGet getVal = new MethodGet(flowLog);
            Object obj = expression.eval(getVal);
            return obj;
        }        @Override
        public int getIntValue(FLOW_LOG flowLog)
        {
            Object val = getValue(flowLog);
            if (val == null)
            {
                return 0;
            }
            if (val instanceof Number)
            {
                return ((Number)val).intValue();
            }
            else
            {
                return Integer.parseInt(val.toString());
            }
        }        @Override
        public long getLongValue(FLOW_LOG flowLog)
        {
            Object val = getValue(flowLog);
            if (val == null)
            {
                return 0;
            }
            if (val instanceof Number)
            {
                return ((Number)val).longValue();
            }
            else
            {
                return Long.parseLong(val.toString());
            }
        }        @Override
        public double getDoubleValue(FLOW_LOG flowLog)
        {
            Object val = getValue(flowLog);
            if (val == null)
            {
                return 0;
            }
            if (val instanceof Number)
            {
                return ((Number)val).doubleValue();
            }
            else
            {
                return Double.parseDouble(val.toString());
            }
        }        @Override
        public String getTextValue(FLOW_LOG flowLog)
        {
            Object val = getValue(flowLog);
            if (val == null)
            {
                return null;
            }
            else
            {
                return val.toString();
            }
        }
        
        
        
    }
这是继承的父类:
public static interface Get
    {
        public Object getValue(FLOW_LOG flowLog);
        public int getIntValue(FLOW_LOG flowLog);
        public long getLongValue(FLOW_LOG flowLog);
        public double getDoubleValue(FLOW_LOG flowLog);
        public String getTextValue(FLOW_LOG flowLog);
    }
主函数里面:
           FactExpressionBuilder b = new FactExpressionBuilder(entityId,eventId, e.getValue(), extImports);
           FactExpression exp = b.getFactExp();
           ExpressionGet get = new ExpressionGet(exp);
请问ExpressionGet get = new ExpressionGet(exp);这段代码执行是什么个情况?请详细说明用到的技术及运行原理java

解决方案 »

  1.   

    ExpressionGet get = new ExpressionGet(exp);
    不就是构造函数初始化对象么。
    还要精通java的大神们出马???精通java,几人敢自称。
      

  2.   

    不是内部类的话
    能用这个private static吗?
      

  3.   


    前面的俩类,实在是自己水平有限看了下,用到了其它几个类内容不详,无法回答但是看你问的这点,看命名似乎是个工厂方法
    //取得工厂
    //这里我觉得应该还有句获得工厂

    //获得具体工厂
     FactExpressionBuilder b = new FactExpressionBuilder(entityId,eventId, e.getValue(), extImports);
     
     //获得实例
         FactExpression exp = b.getFactExp();
         
         //用了个装饰模式,具体干什么不知道,看内容吧
         ExpressionGet get = new ExpressionGet(exp);
      

  4.   


    前面的俩类,实在是自己水平有限看了下,用到了其它几个类内容不详,无法回答但是看你问的这点,看命名似乎是个工厂方法
    //取得工厂
    //这里我觉得应该还有句获得工厂

    //获得具体工厂
     FactExpressionBuilder b = new FactExpressionBuilder(entityId,eventId, e.getValue(), extImports);
     
     //获得实例
         FactExpression exp = b.getFactExp();
         
         //用了个装饰模式,具体干什么不知道,看内容吧
         ExpressionGet get = new ExpressionGet(exp);

    其实那些类都是经过封装的,我就是想问这个是什么编程模式