犀利的蛙 2015-08-03 11:53 采纳率: 0%
浏览 1564

父类 静态方法 如何知道 是哪个从哪个子类进行调用?

class Parent(){

public static void print(){
       System.out.println("class childA 调用了这个方法");
}

}

class ChildA extends Parent(){}

pubic static void main(String []str){
ChildA.print();
}

// 如果要让父类里面打印子类的信息,有什么方法可以做到
// 我们暂时不考虑ASM CGLIB JAVASISSIT 之类,可以操作字节码的东西,JAVA
// 有隐藏的API 可以提供 他们之间的调用链路吗?

  • 写回答

2条回答 默认 最新

  • Evankaka 领域专家: 后端开发技术领域 2015-08-03 13:40
    关注

    可以用base64或base32来做

     package cn.com;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    
    public class Base64Test 
    {
        public static void main(String[] args)
        {
            String strImg = GetImageStr();
            System.out.println(strImg);
            GenerateImage(strImg);
        }
        //图片转化成base64字符串
        public static String GetImageStr()
        {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
            String imgFile = "d://test.jpg";//待处理的图片
            InputStream in = null;
            byte[] data = null;
            //读取图片字节数组
            try 
            {
                in = new FileInputStream(imgFile);        
                data = new byte[in.available()];
                in.read(data);
                in.close();
            } 
            catch (IOException e) 
            {
                e.printStackTrace();
            }
            //对字节数组Base64编码
            BASE64Encoder encoder = new BASE64Encoder();
            return encoder.encode(data);//返回Base64编码过的字节数组字符串
        }
    
        //base64字符串转化成图片
        public static boolean GenerateImage(String imgStr)
        {   //对字节数组字符串进行Base64解码并生成图片
            if (imgStr == null) //图像数据为空
                return false;
            BASE64Decoder decoder = new BASE64Decoder();
            try 
            {
                //Base64解码
                byte[] b = decoder.decodeBuffer(imgStr);
                for(int i=0;i<b.length;++i)
                {
                    if(b[i]<0)
                    {//调整异常数据
                        b[i]+=256;
                    }
                }
                //生成jpeg图片
                String imgFilePath = "d://222.jpg";//新生成的图片
                OutputStream out = new FileOutputStream(imgFilePath);    
                out.write(b);
                out.flush();
                out.close();
                return true;
            } 
            catch (Exception e) 
            {
                return false;
            }
        }
    }
    
    
    
    评论

报告相同问题?