@@ -18,7 +18,7 @@ public ClassNamed(Class<?> knownClass) {
18
18
}
19
19
20
20
public ClassNamed {
21
- Preconditions .checkArgument (SourceVersion .isName (packageName ), "Package name contains syntax errors" );
21
+ Preconditions .checkArgument (packageName . isEmpty () || SourceVersion .isName (packageName ), "Package name contains syntax errors" );
22
22
Preconditions .checkArgument (SourceVersion .isName (dottedNestedName ), "Class name contains syntax errors" );
23
23
if (knownClass != null ) {
24
24
Preconditions .checkArgument (!knownClass .isPrimitive (), "Invalid class, primitive types and 'void' type are not allowed" );
@@ -29,7 +29,7 @@ public ClassNamed(Class<?> knownClass) {
29
29
/**
30
30
* Creates a class named object.
31
31
*
32
- * @param packageName the package name
32
+ * @param packageName the package name or an empty string for the default package
33
33
* @param name the class name
34
34
* @return the new object
35
35
* @apiNote nested classes are delimited by '$' character and
@@ -54,7 +54,7 @@ public static ClassNamed of(String packageName, String name) {
54
54
/**
55
55
* Creates a class named object.
56
56
*
57
- * @param packageName the package name
57
+ * @param packageName the package name or an empty string for the default package
58
58
* @param name the root class name
59
59
* @param nestedNames the nested class names
60
60
* @return the new object
@@ -124,6 +124,10 @@ public String canonicalName() {
124
124
return this .knownClass .getCanonicalName ();
125
125
}
126
126
127
+ if (this .packageName .isEmpty ()) {
128
+ return this .dottedNestedName ;
129
+ }
130
+
127
131
return this .packageName + '.' + this .dottedNestedName ;
128
132
}
129
133
0 commit comments