題目描述
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
......
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);
}
}
}