जावा:जावा बनाम ग्रूवी आंतरिक/बाहरी वर्ग विसंगति
public final class Outer {
public static void main(String[] args) {
Inner.inner();
}
private static final class Inner {
private static void inner() {
System.out.println("inner");
outer();
}
}
private static void outer() {
System.out.println("outer");
}
}
आउटपुट जब चलाएँ:
inner
outer
ग्रूवी:
public final class Outer {
static main(String[] args) {
Inner.inner()
}
static outer() {
println('outer')
}
static final class Inner {
static inner() {
println('inner')
outer()
}
}
}
आउटपुट जब चलाएँ:
$ groovy Outer
inner
Caught: groovy.lang.MissingMethodException: No signature of method: static Outer$Inner.outer() is applicable for argument types:() values: []
Possible solutions: inner(), use([Ljava.lang.Object;), use(java.lang.Class, groovy.lang.Closure), use(java.util.List, groovy.lang.Closure), putAt(java.lang.String, java.lang.Object), grep()
groovy.lang.MissingMethodException: No signature of method: static Outer$Inner.outer() is applicable for argument types:() values: []
Possible solutions: inner(), use([Ljava.lang.Object;), use(java.lang.Class, groovy.lang.Closure), use(java.util.List, groovy.lang.Closure), putAt(java.lang.String, java.lang.Object), grep()
at Outer$Inner.inner(Outer.groovy:13)
at Outer$Inner$inner.call(Unknown Source)
at Outer.main(Outer.groovy:3)
यह विसंगति क्यों? Outer.outer()
का उपयोग करना, हालांकि कक्षा का नाम टाइप करने से बचने का कोई तरीका है?
धन्यवाद! :(<--- मेरा दुखद चेहरा –