您好,欢迎来到品趣旅游知识分享网。
搜索
您的当前位置:首页运行时的Java 8参数名称

运行时的Java 8参数名称

来源:品趣旅游知识分享网

Java 8将引入一种更容易的方法来发现方法和构造函数的参数名称。

在Java 8之前,找到参数名称的方法是在编译阶段打开调试符号,这会在生成的类文件中添加有关参数名称的元信息,然后提取复杂的信息,需要获取参数名称。

对于Java 8,尽管仍需要使用打开调试符号的编译步骤才能将参数名称输入类字节码,但是此信息的提取更加简单,并且Java反射支持此信息。 考虑一个简单的类:

public class Bot {
    private final String name;
    private final String author;
    private final int rating;
    private final int score;

    public Bot(String name, String author, int rating, int score) {
        this.name = name;
        this.author = author;
        this.rating = rating;
        this.score = score;
    }

    ...
}

从理论上讲,遵循这些原则的代码应掌握上述构造函数的参数名称:

Class<Bot> clazz = Bot.class;
Constructor ctor = clazz.getConstructor(String.class, String.class, int.class, int.class);
Parameter[] ctorParameters =ctor.getParameters();

for (Parameter param: ctorParameters) {
    System.out.println(param.isNamePresent() + ":" + param.getName());
}

参数是封装该信息的新反射类型。 在我用Java Developer Preview(b120)进行的测试中,我无法使它正常工作!

资源:
  • http://openjdk.java.net/jeps/118

参考: 博客中的 Biju Kunjummen提供的 。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务