⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pythonobjectinputstream.java

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 JAVA
字号:
// Copyright 2000 Finn Bockpackage org.python.util;import java.io.*;import org.python.core.*;public class PythonObjectInputStream extends ObjectInputStream {    public PythonObjectInputStream(InputStream istr) throws IOException {        super(istr);        enableResolveObject(true);    }    protected Object resolveObject(Object o) throws IOException {        Class cls = o.getClass();        if (cls == PyNone.class)            return Py.None;        else if (cls == PyEllipsis.class)            return Py.Ellipsis;        else if (cls == PyNotImplemented.class)            return Py.NotImplemented;        else if (o instanceof PySingleton)            throw new IOException("Unserializing a singleton");        return o;    }    protected Class resolveClass(ObjectStreamClass v)                      throws IOException, ClassNotFoundException {        String clsName = v.getName();        //System.out.println(clsName);        if (clsName.startsWith("org.python.proxies")) {            int idx = clsName.lastIndexOf('$');            if (idx > 19)               clsName = clsName.substring(19, idx);            //System.out.println("new:" + clsName);            idx = clsName.indexOf('$');            if (idx >= 0) {                String mod = clsName.substring(0, idx);                clsName = clsName.substring(idx+1);                PyObject module = importModule(mod);                PyObject pycls = module.__getattr__(clsName.intern());                Object cls = pycls.__tojava__(Class.class);                if (cls != null && cls != Py.NoConversion)                    return (Class) cls;            }        }        try {            return super.resolveClass(v);        } catch (ClassNotFoundException exc) {            PyObject m = importModule(clsName);            //System.out.println("m:" + m);            Object cls = m.__tojava__(Class.class);            //System.out.println("cls:" + cls);            if (cls != null && cls != Py.NoConversion)                return (Class) cls;            throw exc;        }    }    private static PyObject importModule(String name) {        PyObject silly_list = new PyTuple(new PyString[] {            Py.newString("__doc__"),        });        return __builtin__.__import__(name, null, null, silly_list);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -