How to find the access modifier of a member using java reflection

后端 未结 2 396
萌比男神i
萌比男神i 2021-01-28 05:33

Find the access modifier of a member using java reflection

private final static long serialId = 1L;
protected String title;
public String FirstName;
2条回答
  •  萌比男神i
    2021-01-28 06:06

    For all fields in the class (assuming class is named theClass)

    Field[] fields = theClass.getDeclaredFields();
    for (Field field : fields) {
        int modifers = field.getModifiers();
        if (Modifier.isPrivate(modifers)) {
            System.out.println(field.getName() + " is Private");
        }
    }
    

    The following methods determine could also be used:

    boolean isPrivate(Field field){
        int modifers = field.getModifiers();
        return Modifier.isPrivate(modifers);
    }
    
    boolean isProtected(Field field){
        int modifers = field.getModifiers();
        return Modifier.isPublic(modifers);
    }
    
    boolean isPublic(Field field){
        int modifers = field.getModifiers();
        return Modifier.isProtected(modifers);
    }
    

    Example usage (given a class called theClass)

    Field titleField = theClass.getField("title");
    boolean titleIsProtected = isProtected(titleField);
    

提交回复
热议问题