generated from JavaLabs2025/reflection-template
-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathGenerateExample.java
More file actions
96 lines (84 loc) · 3.73 KB
/
GenerateExample.java
File metadata and controls
96 lines (84 loc) · 3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package org.example;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.example.classes.*;
import org.example.generator.Generator;
public class GenerateExample {
public static void main(String[] args) throws NoSuchFieldException {
var gen = new Generator();
System.out.println("=== Testing Generator ===");
try {
System.out.println("\n1. Generating Example:");
Object example = gen.generateValueOfType(Example.class);
System.out.println("Generated: " + example);
} catch (Exception e) {
System.err.println("Error generating Example: " + e.getMessage());
}
try {
System.out.println("\n2. Generating Shape:");
Object shape = gen.generateValueOfType(Shape.class);
System.out.println("Generated: " + shape);
if (shape instanceof Shape s) {
System.out.println("Area: " + s.getArea());
System.out.println("Perimeter: " + s.getPerimeter());
}
} catch (Exception e) {
System.err.println("Error generating Shape: " + e.getMessage());
}
try {
System.out.println("\n3. Generating Product:");
Object product = gen.generateValueOfType(Product.class);
System.out.println("Generated: " + product);
} catch (Exception e) {
System.err.println("Error generating Product: " + e.getMessage());
}
try {
System.out.println("\n4. Generating Rectangle:");
Object rectangle = gen.generateValueOfType(Rectangle.class);
System.out.println("Generated: " + rectangle);
if (rectangle instanceof Rectangle r) {
System.out.println("Area: " + r.getArea());
System.out.println("Perimeter: " + r.getPerimeter());
}
} catch (Exception e) {
System.err.println("Error generating Rectangle: " + e.getMessage());
}
try {
System.out.println("\n5. Generating Triangle:");
Object triangle = gen.generateValueOfType(Triangle.class);
System.out.println("Generated: " + triangle);
if (triangle instanceof Triangle t) {
System.out.println("Area: " + t.getArea());
System.out.println("Perimeter: " + t.getPerimeter());
}
} catch (Exception e) {
System.err.println("Error generating Triangle: " + e.getMessage());
}
try {
System.out.println("\n6. Generating Cart:");
Object cart = gen.generateValueOfType(Cart.class);
System.out.println("Generated: " + cart);
} catch (Exception e) {
System.err.println("Error generating Cart: " + e.getMessage());
}
try {
System.out.println("\n7. Generating BinaryTreeNode:");
Object node = gen.generateValueOfType(BinaryTreeNode.class);
System.out.println("Generated: " + node);
} catch (Exception e) {
System.err.println("Error generating BinaryTreeNode: " + e.getMessage());
}
Field items = Cart.class.getDeclaredField("items");
Type genericType = items.getGenericType();
if (genericType instanceof ParameterizedType pType) {
Type[] actualTypeArguments = pType.getActualTypeArguments();
for (Type type : actualTypeArguments) {
if (type instanceof Class<?> elementClass) {
System.out.println("Declared element type: " + elementClass.getName());
// Output: Declared element type: java.lang.String
}
}
}
}
}