題目描述

Java的反射機制可以在執行階段查詢類別屬性。舉例來說,我們可以使用getDeclaredMethods方法來取得某個類別中所有的方法。



在這個題目中,您將需要在Solution類別內,使用Java的反射機制來印出所有在Student類別的方法。Student類別的程式如下:

class Student{
    private String name;
    private String id;
    private String email;

    public String getName() {
        return name;
    }
    public void setId(String id) {
        this.id = id;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public void anothermethod(){  }
    ......
    ......
    some more methods
    ......
 }

原題網址

輸入格式

不必輸入。

輸出格式

您需要使用字典排序輸出所有類別中的方法名稱,如下:

anothermethod
getName
setEmail
setId
......
......
some more methods
......

解題概念

使用Class類別提供的getDeclaredMethods物件方法來取得Student類別中的所有方法。接著將這些方法名稱存到一個ArrayList中,並進行字典排序。最後再輸出。

參考答案

public class Solution {

        public static void main(String[] args){
            Class student = Student.class;
            Method[] methods = student.getDeclaredMethods();

            ArrayList<String> methodList = new ArrayList<>();
            for(final Method method : methods){
                methodList.add(method.getName());
            }
            Collections.sort(methodList);
            for(String name: methodList){
                System.out.println(name);
            }
        }
}