回答編集履歴
1
変数宣言のミスを修正・解説を追記
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
```java
|
4
4
|
|
5
|
-
static t=new T();
|
5
|
+
static T t=new T();//staticなのは単純にmainから呼べないからです
|
6
6
|
|
7
7
|
public static void main(String args[]){
|
8
8
|
|
@@ -20,13 +20,17 @@
|
|
20
20
|
|
21
21
|
static Field[] getInstaceField(Class<?> c){
|
22
22
|
|
23
|
-
Field[] ml=c.getDeclaredFields();
|
23
|
+
Field[] ml=c.getDeclaredFields();//ここにstaicも含めた変数が入る
|
24
24
|
|
25
|
+
//c.getDeclaredFields()によってこのクラスのフィールドをすべて取得している
|
26
|
+
|
25
|
-
ArrayList<Field> r=new ArrayList<Field>();
|
27
|
+
ArrayList<Field> r=new ArrayList<Field>();//staticじゃない変数が入る
|
26
28
|
|
27
29
|
for(Field m:ml){
|
28
30
|
|
29
31
|
if(!Modifier.isStatic((m.getModifiers()))){
|
32
|
+
|
33
|
+
//Modifier.isStatic((m.getModifiers()))によってstaticフィールドなのか判定
|
30
34
|
|
31
35
|
r.add(m);
|
32
36
|
|