質問編集履歴
3
質問内容の引き継ぎ
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,4 +54,8 @@
|
|
54
54
|
### 補足情報(FW/ツールのバージョンなど)
|
55
55
|
java -JDK8
|
56
56
|
|
57
|
-
参考URL:http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html
|
57
|
+
参考URL:http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html
|
58
|
+
|
59
|
+
## 注意
|
60
|
+
この質問は
|
61
|
+
[リンク内容](https://teratail.com/questions/155875)に引き継ぎました。
|
2
作成したいクラス名の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,12 +37,18 @@
|
|
37
37
|
```
|
38
38
|
作成したいインスタンスのクラスは以下のようになっています。
|
39
39
|
|
40
|
+
`#内容修正後`
|
41
|
+
|
40
42
|
```java
|
41
|
-
class
|
43
|
+
public class ProgramNameToken extends AllExp{//program名
|
42
|
-
|
44
|
+
public ProgramNameToken(AllExp parent_exp) {
|
43
|
-
|
45
|
+
super(parent_exp);
|
46
|
+
}
|
47
|
+
public AllExp exp_rule() {
|
48
|
+
new NameToken(this);
|
49
|
+
return this;
|
50
|
+
}
|
44
51
|
}
|
45
|
-
}
|
46
52
|
```
|
47
53
|
|
48
54
|
### 補足情報(FW/ツールのバージョンなど)
|
1
内容の補足
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,11 @@
|
|
2
2
|
|
3
3
|
動的にクラスからインスタンスを作りたいです。
|
4
4
|
そのためにリフレクション機能を使おうと思っているのですが、うまく行きません。
|
5
|
+
`forname()`を用いて文字列からクラスを作成後、コンストラクタを`constractor`を用いて作成しようとする段階でerrorが起きてしまいます。
|
5
6
|
|
7
|
+
何が原因かわかる方いらっしゃいますでしょうか?
|
8
|
+
|
9
|
+
|
6
10
|
### 発生している問題・エラーメッセージ
|
7
11
|
|
8
12
|
```
|
@@ -12,6 +16,7 @@
|
|
12
16
|
```
|
13
17
|
|
14
18
|
### 該当のソースコード
|
19
|
+
実行しているメソッド
|
15
20
|
|
16
21
|
```java
|
17
22
|
void make_class(AllExp parent,String strClass){
|
@@ -22,7 +27,7 @@
|
|
22
27
|
Class<?> class_name = Class.forName(strClass);
|
23
28
|
// インスタンスの生成
|
24
29
|
Constructor constructor = class_name.getConstructor(AllExp.class);
|
25
|
-
|
30
|
+
//ここでエラー発生
|
26
31
|
constructor.newInstance(parent);
|
27
32
|
} catch(ReflectiveOperationException e) {
|
28
33
|
e.printStackTrace();
|
@@ -34,16 +39,13 @@
|
|
34
39
|
|
35
40
|
```java
|
36
41
|
class ProgramToken extends AllExp{//プログラム
|
37
|
-
ProgramToken(AllExp parent_exp) {
|
42
|
+
ProgramToken(AllExp parent_exp) {//このコンストラクタを実行したい
|
38
43
|
super(parent_exp);
|
39
44
|
}
|
40
45
|
}
|
41
46
|
```
|
42
47
|
|
43
|
-
### 試したこと
|
44
|
-
|
45
|
-
ここに問題に対して試したことを記載してください。
|
46
|
-
|
47
48
|
### 補足情報(FW/ツールのバージョンなど)
|
49
|
+
java -JDK8
|
48
50
|
|
49
51
|
参考URL:http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html
|