ognl_ognl用于什么_java(6)

电脑杂谈  发布时间:2017-02-16 12:32:16  来源:网络整理
 private static final Object getHandler( Class forClass, ClassCache handlers )
    {
        Object answer = null;


        synchronized(handlers) {
            if ((answer = handlers.get(forClass)) == null)
            {
                Class   keyFound;


                if (forClass.isArray())
                {
                    answer = handlers.get(Object[].class);
                    keyFound = null;
                }
                else
                {
                    keyFound = forClass;
                    outer:
                        for ( Class c = forClass; c != null; c = c.getSuperclass() )
                        {
                            answer = handlers.get(c);
                            if ( answer == null )
                            {
                                Class[] inteces = c.getInteces();
                                for ( int index=0, count=inteces.length; index < count; ++index )
                                {
                                    Class   iface = inteces[index];


                                    answer = handlers.get(iface);
                                    if (answer == null)
                                    {
                                        /* Try super-inteces */
                                        answer = getHandler(iface, handlers);
                                    }
                                    if ( answer != null )
                                    {
                                        keyFound = iface;
                                        break outer;
                                    }
                                }
                            }
                            else
                            {
                                keyFound = c;
                                break;
                            }
                        }
                }
                if ( answer != null )
                {
                    if ( keyFound != forClass )
                    {
                        handlers.put( forClass, answer );
                    }
                }
            }
        }
        return answer;
    }

 


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32760-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...