Java dos命令窗口获取方法的签名

内容:

演示如何获取一个方法的签名。在JNI中,如果C语言要调用Java模块,必定要用到反射技术(详情),而在反射技术中,必须要用到签名才能让C语言获取Java的方法。

小技巧:dos命令窗口里面无法复制,只要鼠标点击右键–》标记,然后光标就会变大,就可以选中复制区域,ctrl+c 就可以了。

步骤:

1.创建一个Java项目

目录结构如下

这里写图片描述

在该项目中创建一个类,该类如下:

package hhh.exercise.test;

public class Test {

    public void method1() {
        System.out.println("调用了show方法");
    }

    public int method2(int i) {
        return i;
    }

    public String method3(String string) {
        return string;
    }
}

2.控制台语句

到带该项目所在目录,然后到bin目录下(…JavaTest\bin),该目录下\hhh\exercise\test里面有字节码文件。然后在这里打开控制台,如下所示:

这里写图片描述

在控制台输入javap,如下所示:

这里写图片描述

可以看到-s 可以输出内部类型的签名,所以就用在控制台下输入:javap -s hhh.exercise.test.Test

(或者在Test.class当前所在目录打开控制台,输入javap -s Test 即可)
这里写图片描述

3.解释签名

由上面的图可以看到:
public void method1()
 descirption:()V  
表示method1方法签名()V,
可以看出()里面是参数类型,为空;V表示返回类型,为空

public void method2()
 descirption:(I)I 
表示method2方法签名(I)I, 
可以看出(I)里面是参数类型为int;括号外的I表示返回类型为int类型

public void method3()
 descirption:(LJava/lang/String;)LJava/lang/String; 
表示method3方法签名(I)(LJava/lang/String;)LJava/lang/String; , 
可以看出(LJava/lang/String;)里面是参数类型为String;括号外的LJava/lang/String;表示返回类型为String类型.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值