亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? annotations.java

?? asm的源碼包 并且包含英文的文檔
?? JAVA
字號:
/***
 * ASM examples: examples showing how ASM can be used
 * Copyright (c) 2000-2005 INRIA, France Telecom
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the copyright holders nor the names of its
 *    contributors may be used to endorse or promote products derived from
 *    this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.ClassAdapter;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodAdapter;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;

public class Annotations {

    public static void foo(final @NotNull
    String arg)
    {
        System.out.println(arg);
    }

    public static void main(final String[] args) throws Exception {
        System.out.println("Calling foo(null) results in a NullPointerException:");
        try {
            foo(null);
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }

        final String n = Annotations.class.getName();
        final ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
        ClassReader cr = new ClassReader(n);
        cr.accept(new ClassAdapter(cw) {

            public MethodVisitor visitMethod(
                final int access,
                final String name,
                final String desc,
                final String signature,
                final String[] exceptions)
            {
                final Type[] args = Type.getArgumentTypes(desc);
                MethodVisitor v = cv.visitMethod(access,
                        name,
                        desc,
                        signature,
                        exceptions);
                return new MethodAdapter(v) {

                    private final List params = new ArrayList();

                    public AnnotationVisitor visitParameterAnnotation(
                        final int parameter,
                        final String desc,
                        final boolean visible)
                    {
                        AnnotationVisitor av;
                        av = mv.visitParameterAnnotation(parameter,
                                desc,
                                visible);
                        if (desc.equals("LNotNull;")) {
                            params.add(new Integer(parameter));
                        }
                        return av;
                    }

                    public void visitCode() {
                        int var = (access & Opcodes.ACC_STATIC) == 0 ? 1 : 0;
                        for (int p = 0; p < params.size(); ++p) {
                            int param = ((Integer) params.get(p)).intValue();
                            for (int i = 0; i < param; ++i) {
                                var += args[i].getSize();
                            }
                            String c = "java/lang/IllegalArgumentException";
                            String d = "(Ljava/lang/String;)V";
                            Label end = new Label();
                            mv.visitVarInsn(Opcodes.ALOAD, var);
                            mv.visitJumpInsn(Opcodes.IFNONNULL, end);
                            mv.visitTypeInsn(Opcodes.NEW, c);
                            mv.visitInsn(Opcodes.DUP);
                            mv.visitLdcInsn("Argument " + param
                                    + " must not be null");
                            mv.visitMethodInsn(Opcodes.INVOKESPECIAL,
                                    c,
                                    "<init>",
                                    d);
                            mv.visitInsn(Opcodes.ATHROW);
                            mv.visitLabel(end);
                        }
                    }
                };
            }
        }, 0);

        Class c = new ClassLoader() {
            public Class loadClass(final String name)
                    throws ClassNotFoundException
            {
                if (name.equals(n)) {
                    byte[] b = cw.toByteArray();
                    return defineClass(name, b, 0, b.length);
                }
                return super.loadClass(name);
            }
        }.loadClass(n);

        System.out.println();
        System.out.println("Calling foo(null) on the transformed class results in an IllegalArgumentException:");
        Method m = c.getMethod("foo", new Class[] { String.class });
        try {
            m.invoke(null, new Object[] { null });
        } catch (InvocationTargetException e) {
            e.getCause().printStackTrace(System.out);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线不卡免费看| 成人激情免费网站| 男人的j进女人的j一区| 综合久久久久综合| 国产精品久久夜| 国产精品传媒视频| 亚洲美女屁股眼交3| 亚洲综合色婷婷| 午夜精品一区二区三区电影天堂 | 天天av天天翘天天综合网| 亚洲人成7777| 午夜精品福利一区二区蜜股av | 国产美女在线精品| 国产美女娇喘av呻吟久久| 国产麻豆一精品一av一免费| 成人丝袜高跟foot| 日本伦理一区二区| 日韩一区二区三区观看| 久久久www免费人成精品| 国产精品欧美经典| 亚洲午夜av在线| 久99久精品视频免费观看| 岛国精品在线观看| 欧美午夜电影一区| www一区二区| 伊人色综合久久天天人手人婷| 亚洲蜜臀av乱码久久精品蜜桃| 日日夜夜免费精品| 国产精品18久久久久久久久久久久| caoporm超碰国产精品| 欧美日韩一区二区三区不卡 | 成人精品小蝌蚪| 精品1区2区3区| 国产精品素人一区二区| 亚洲成人一区二区| 成人app软件下载大全免费| 欧美男男青年gay1069videost| 久久久久9999亚洲精品| 亚洲综合色自拍一区| 国产福利91精品一区| 在线播放亚洲一区| 综合亚洲深深色噜噜狠狠网站| 美女视频网站久久| 欧美性生活影院| 国产精品久久久久四虎| 狠狠色狠狠色综合| 在线播放中文一区| 一区二区三区在线视频观看58| 精品在线一区二区| 欧美高清视频不卡网| 一区二区三区不卡视频| 国产大陆a不卡| 精品乱人伦小说| 婷婷中文字幕综合| 在线观看免费亚洲| 亚洲欧美日韩中文播放| 国产成人在线看| 久久人人爽人人爽| 久久精品国产第一区二区三区| 欧美图片一区二区三区| 一区二区三区中文字幕在线观看| 成人三级在线视频| 日本一区二区视频在线观看| 韩国女主播成人在线观看| 91精品国产综合久久久久久久久久| 亚洲蜜臀av乱码久久精品| 99久久国产综合色|国产精品| 国产精品网站在线观看| 丰满放荡岳乱妇91ww| 中文字幕第一区二区| 国产精品1区2区3区在线观看| 欧美精品一区二区三区视频| 青娱乐精品在线视频| 日韩欧美激情一区| 精品一区二区三区免费观看 | 国产一区不卡精品| 久久久99精品免费观看不卡| 精品一区二区在线播放| 国产亚洲精品7777| 国产激情视频一区二区三区欧美| 国产三级欧美三级| 成人国产精品免费观看| 成人免费在线观看入口| 欧日韩精品视频| 日韩在线一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 美女免费视频一区| 精品99一区二区| 97久久精品人人做人人爽| 亚洲一区二区三区爽爽爽爽爽| 欧美精品乱码久久久久久| 激情综合色综合久久| 国产精品二区一区二区aⅴ污介绍| jizz一区二区| 日韩影院在线观看| 久久九九久久九九| 欧美午夜一区二区三区| 麻豆极品一区二区三区| 中文字幕一区二区日韩精品绯色| 在线视频一区二区三区| 精品影视av免费| 国产精品国产三级国产| 欧美挠脚心视频网站| 国产福利一区二区| 亚洲成人资源在线| 久久久久久99精品| 欧美日韩精品综合在线| 国产精品香蕉一区二区三区| 亚洲免费观看高清完整版在线观看| 91精品欧美一区二区三区综合在 | 欧美日韩免费观看一区三区| 国产自产高清不卡| 亚洲精品videosex极品| 久久久久久夜精品精品免费| 色吧成人激情小说| 国产麻豆精品一区二区| 五月天网站亚洲| 国产精品麻豆视频| 日韩三级免费观看| 欧美色电影在线| av电影天堂一区二区在线观看| 日韩黄色免费网站| 亚洲六月丁香色婷婷综合久久| 久久中文娱乐网| 欧美日韩国产一区二区三区地区| 懂色av一区二区夜夜嗨| 日本伊人精品一区二区三区观看方式| 亚洲欧洲美洲综合色网| 亚洲精品在线电影| 91精品国产高清一区二区三区| 色噜噜狠狠成人网p站| 成人午夜短视频| 国产一区二区毛片| 久久99国产精品免费网站| 亚洲成人动漫在线免费观看| 日韩美女精品在线| 国产精品少妇自拍| 久久精品在这里| 久久综合资源网| 欧美成人免费网站| 日韩一级完整毛片| 欧美一二三区在线观看| 欧美日韩国产影片| 欧美电影在哪看比较好| 精品视频资源站| 欧美日韩成人在线| 欧美网站大全在线观看| 欧美人妇做爰xxxⅹ性高电影 | 国产三级精品在线| 久久久久久亚洲综合影院红桃| 日韩精品影音先锋| 精品粉嫩aⅴ一区二区三区四区 | 亚洲国产精品99久久久久久久久| 久久色在线观看| 久久婷婷成人综合色| 欧美激情一区三区| 国产精品污www在线观看| 中文字幕中文字幕在线一区| 成人欧美一区二区三区白人| 亚洲精品欧美专区| 亚洲福利一区二区三区| 日韩电影免费一区| 国产乱子轮精品视频| 成人爱爱电影网址| 91成人在线精品| 欧美精品日韩一本| wwwwxxxxx欧美| 专区另类欧美日韩| 午夜视黄欧洲亚洲| 国内外精品视频| 成人午夜大片免费观看| 日本韩国欧美三级| 91麻豆精品91久久久久久清纯| 欧美大片日本大片免费观看| 久久久久久久网| 亚洲欧美日本在线| 日韩中文字幕亚洲一区二区va在线| 加勒比av一区二区| 91免费观看国产| 制服丝袜国产精品| 欧美激情在线观看视频免费| 一区二区三区日韩| 狠狠v欧美v日韩v亚洲ⅴ| 成人va在线观看| 日韩欧美中文一区| 日本一二三四高清不卡| 亚洲电影中文字幕在线观看| 国产一区二区三区四区五区美女 | 精品国产一区二区亚洲人成毛片| 久久久久久影视| 午夜精品久久久久久久久| 国产91精品免费| 日韩一区二区影院| 1区2区3区精品视频| 久久精品999| 欧美久久久久久久久| 国产精品乱码一区二区三区软件| 肉肉av福利一精品导航| 91浏览器入口在线观看| 国产欧美一区二区精品秋霞影院|