如何在java中获取类的特殊方法?

时间:2015-04-23 08:28:07

标签: java methods annotations

我在Java中有一些带有一些方法的类,如下所示:

public class Class1
{
    private String a;
    private String b;


    public setA(String a_){
        this.a = a_;
    }

    public setb(String b_){
        this.b = b_;
    }

    public String getA(){
        return a;
    }

    @JsonIgnore
    public String getb(){
        return b;
    }
}

我希望获得Class1中以字符串get开头但未使用@JsonIgnore注释声明的所有方法。

我该怎么做?

3 个答案:

答案 0 :(得分:4)

您可以使用Java Reflection迭代所有公共和私有方法:

Class1 obj = new Class1();

Class c = obj.getClass();
for (Method method : c.getDeclaredMethods()) {
    if (method.getAnnotation(JsonIgnore.class) == null &&
        method.getName().substring(0,3).equals("get")) {
        System.out.println(method.getName());
    }
}

答案 1 :(得分:2)

您可以使用java反射。 例如

<!--Custom scripts-->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>

答案 2 :(得分:1)

借助反射我们可以做到这一点。

public static void main(String[] args) {
    Method[] methodArr = Class1.class.getMethods();

    for (Method method : methodArr) {
        if (method.getName().contains("get") && method.getAnnotation(JsonIgnore.class)==null) {
            System.out.println(method.getName());
        }
    }
}