回答編集履歴

1

コンパイルエラーの解決方法

2020/12/26 03:35

投稿

moromon
moromon

スコア86

test CHANGED
@@ -23,3 +23,85 @@
23
23
  Personのnameとgenderをpublicにするか、setter,getterを作ってあげてください。
24
24
 
25
25
  偉そうにすみませんが、まずはそこからだと思います。
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+ こちら原因がわかりました。
36
+
37
+ Javaの基本的なことでした。気づかなくてすみません。
38
+
39
+
40
+
41
+ Javaは、システムに大きな障害を発生させうる例外については、明示的に例外処理する必要があります。
42
+
43
+
44
+
45
+ あとえばMain関数をこのように書いてみてください。
46
+
47
+
48
+
49
+ ```java
50
+
51
+ public static void main(String[] args) {
52
+
53
+ Person person = new Person();
54
+
55
+ person.setName("Taro");
56
+
57
+ person.setGender("Male");
58
+
59
+
60
+
61
+ Field[] fields = person.getClass().getFields();
62
+
63
+
64
+
65
+ for (Field f : fields) {
66
+
67
+ if(f.isAnnotationPresent(Test.class)) {
68
+
69
+ String val = f.getAnnotation(Test.class).val();
70
+
71
+ String result = null;
72
+
73
+ try {
74
+
75
+ result = f.get(person).toString();
76
+
77
+ } catch (IllegalAccessException e) {
78
+
79
+ e.printStackTrace();
80
+
81
+ }
82
+
83
+ System.out.println(val + ": " + result);
84
+
85
+ }
86
+
87
+ }
88
+
89
+ }
90
+
91
+
92
+
93
+ ```
94
+
95
+
96
+
97
+ こうすればコンパイル時のエラーは消えます。動作ができているかはご自身でもう一度確かめてみてください。
98
+
99
+
100
+
101
+ エラー処理の方法は二つありますが、今回はそのうちの一つを書きました。
102
+
103
+ こちらも参考になるとよいのですが↓
104
+
105
+
106
+
107
+ https://ja.stackoverflow.com/questions/11599/java%e3%81%ae%e4%be%8b%e5%a4%96%e5%87%a6%e7%90%86%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%90%86%e8%a7%a3%e3%81%a7%e3%81%8d%e3%81%be%e3%81%9b%e3%82%93