質問編集履歴

3

質問内容の引き継ぎ

2018/11/02 23:15

投稿

tekondo
tekondo

スコア26

test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,11 @@
111
111
 
112
112
 
113
113
  参考URL:http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html
114
+
115
+
116
+
117
+ ## 注意
118
+
119
+ この質問は
120
+
121
+ [リンク内容](https://teratail.com/questions/155875)に引き継ぎました。

2

作成したいクラス名の修正

2018/11/02 23:15

投稿

tekondo
tekondo

スコア26

test CHANGED
File without changes
test CHANGED
@@ -76,17 +76,29 @@
76
76
 
77
77
 
78
78
 
79
+ `#内容修正後`
80
+
81
+
82
+
79
83
  ```java
80
84
 
81
- class ProgramToken extends AllExp{//プログラム
85
+ public class ProgramNameToken extends AllExp{//program名
82
86
 
83
- ProgramToken(AllExp parent_exp) {//このコンストラクタを実行したい
87
+ public ProgramNameToken(AllExp parent_exp) {
84
88
 
85
- super(parent_exp);
89
+ super(parent_exp);
90
+
91
+ }
92
+
93
+ public AllExp exp_rule() {
94
+
95
+ new NameToken(this);
96
+
97
+ return this;
98
+
99
+ }
86
100
 
87
101
  }
88
-
89
- }
90
102
 
91
103
  ```
92
104
 

1

内容の補足

2018/10/29 14:02

投稿

tekondo
tekondo

スコア26

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,14 @@
5
5
  動的にクラスからインスタンスを作りたいです。
6
6
 
7
7
  そのためにリフレクション機能を使おうと思っているのですが、うまく行きません。
8
+
9
+ `forname()`を用いて文字列からクラスを作成後、コンストラクタを`constractor`を用いて作成しようとする段階でerrorが起きてしまいます。
10
+
11
+
12
+
13
+ 何が原因かわかる方いらっしゃいますでしょうか?
14
+
15
+
8
16
 
9
17
 
10
18
 
@@ -26,6 +34,8 @@
26
34
 
27
35
  ### 該当のソースコード
28
36
 
37
+ 実行しているメソッド
38
+
29
39
 
30
40
 
31
41
  ```java
@@ -46,7 +56,7 @@
46
56
 
47
57
  Constructor constructor = class_name.getConstructor(AllExp.class);
48
58
 
49
- Class<?>[] type = {AllExp.class};
59
+ //ここでエラー発生
50
60
 
51
61
  constructor.newInstance(parent);
52
62
 
@@ -70,7 +80,7 @@
70
80
 
71
81
  class ProgramToken extends AllExp{//プログラム
72
82
 
73
- ProgramToken(AllExp parent_exp) {
83
+ ProgramToken(AllExp parent_exp) {//このコンストラクタを実行したい
74
84
 
75
85
  super(parent_exp);
76
86
 
@@ -82,15 +92,9 @@
82
92
 
83
93
 
84
94
 
85
- ### 試したこと
95
+ ### 補足情報(FW/ツールのバージョンなど)
86
96
 
87
-
88
-
89
- ここに問題に対して試したことを記載してください。
97
+ java -JDK8
90
-
91
-
92
-
93
- ### 補足情報(FW/ツールのバージョンなど)
94
98
 
95
99
 
96
100