Began on working on the second assignment. I got bored and wanted to go work on the XML parser.
- Author
- Maarten Vangeneugden
- Date
- Dec. 11, 2015, 3:15 p.m.
- Hash
- 480a1a63f145edc213dde0103ad8f56c19246ec5
- Parent
- 5d5c7f9a70db685e9e0bdcbdc8e98a0bfab6496e
- Modified file
- 07/Reflection.java
07/Reflection.java ¶
14 additions and 1 deletion.
View changes Hide changes
1 |
1 |
import java.lang.reflect.*; |
2 |
2 |
/* Reflection.java - Opdracht 1 of OOP2, introspection. |
3 |
- | Copyright 2015 Maarten Vangeneugden |
+ |
3 |
Copyright 2015 Maarten Vangeneugden |
4 |
4 |
|
5 |
5 |
Licensed under the Apache License, Version 2.0 (the "License"); |
6 |
6 |
you may not use this file except in compliance with the License. |
7 |
7 |
You may obtain a copy of the License at |
8 |
8 |
|
9 |
9 |
https://www.apache.org/licenses/LICENSE-2.0 |
10 |
10 |
|
11 |
11 |
Unless required by applicable law or agreed to in writing, software |
12 |
12 |
distributed under the License is distributed on an "AS IS" BASIS, |
13 |
13 |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
14 |
14 |
See the License for the specific language governing permissions and |
15 |
15 |
limitations under the License.*/ |
16 |
16 |
/** |
17 |
17 |
* MethodPrinter - Class that allows the user to pass a class name via the command line, after which a list of its public members and methods is shown. |
18 |
18 |
* @author Maarten Vangeneugden - 1438256 |
19 |
19 |
*/ |
20 |
20 |
class MethodPrinter { |
21 |
21 |
public static void main(String[] args) { |
22 |
22 |
System.out.println("Class name?"); |
23 |
23 |
Scanner scanner = new Scanner(System.in); |
24 |
24 |
String name = scanner.nextLine(); |
25 |
25 |
|
26 |
26 |
try { |
27 |
27 |
Class cls = Class.forName(name); |
28 |
28 |
Method methods[] = cls.getDeclaredMethods(); |
29 |
29 |
Field fields[] = cls.getDeclaredFields(); |
30 |
30 |
|
31 |
31 |
System.out.println("Methods:"); |
32 |
32 |
for (Method method : methods) { |
33 |
33 |
System.out.println(method.toString()); |
34 |
34 |
} |
35 |
35 |
System.out.println("Fields:"); |
36 |
36 |
for (Field field : fields) { |
37 |
37 |
System.out.println(field.toString()); |
38 |
38 |
} |
39 |
39 |
|
40 |
40 |
} catch(Exception e){ |
41 |
41 |
e.printStackTrace(); |
42 |
42 |
} |
43 |
43 |
} |
44 |
44 |
} |
45 |
45 |
|
+ |
46 |
/** |
+ |
47 |
* MethodExecutor - Allows to execute methods from an arbitrary class via the command line. This only works for classes with empty constructors, static methods or static classes. |
+ |
48 |
* @author Maarten Vangeneugden - 1438256 |
+ |
49 |
*/ |
+ |
50 |
class MethodExecutor { |
+ |
51 |
public static void main(String[] args) { |
+ |
52 |
System.out.println("What method to invoke?"); |
+ |
53 |
Scanner scanner = new scanner(System.in); |
+ |
54 |
String method = scanner.nextLine(); |
+ |
55 |
|
+ |
56 |
} |
+ |
57 |
} |
+ |
58 |