FastJson-TemplatesImpl
// TemplatesImpl#getOutputProperties() public synchronized Properties getOutputProperties() { try { return newTransformer().getOutputProperties(); } catch (TransformerConfigurationException e) { return null; } } // TemplatesImpl#newTransformer() public synchronized Transformer newTransformer(){ TransformerImpl transformer; transformer = new TransformerImpl(getTransletInstance(), _outputProperties, _indentNumber, _tfactory); } // TemplatesImpl#getTransletInstance() private Translet getTransletInstance() { try { if (_name == null) return null; if (_class == null) defineTransletClasses(); // .... } AbstractTranslet translet = (AbstractTranslet) _class[_transletIndex].newInstance(); // ... } // TemplatesImpl#defineTransletClasses() private void defineTransletClasses() { //.... TransletClassLoader loader = AccessController.doPrivileged(new PrivilegedAction<TransletClassLoader>() { public TransletClassLoader run() { return new TransletClassLoader(ObjectFactory.findClassLoader(), _tfactory.getExternalExtensionsMap()); } }); // ... for (int i = 0; i < classCount; i++) { _class[i] = loader.defineClass(_bytecodes[i], pd); // .... } }

局限
Last updated