% javac Nested1.java
An exception has occurred in the compiler (1.3.1). Please file a bug at the Java Developer Connection (http://java.sun.com/cgi-bin/bugreport.cgi). Include your program and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
at com.sun.tools.javac.v8.comp.TransInner.access(TransInner.java:743)
at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1578)
at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1572)
at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1503)
at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:785)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:179)
at com.sun.tools.javac.v8.tree.Tree$Exec.visit(Tree.java:699)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:47)
at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:111)
at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:492)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:100)
at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1436)
at com.sun.tools.javac.v8.tree.Tree$MethodDef.visit(Tree.java:441)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1373)
at com.sun.tools.javac.v8.tree.Tree$ClassDef.visit(Tree.java:402)
at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:35)
at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1335)
at com.sun.tools.javac.v8.comp.TransInner.translateTopLevelClass(TransInner.java:1603)
at com.sun.tools.javac.v8.JavaCompiler.compile(JavaCompiler.java:397)
at com.sun.tools.javac.v8.Main.compile(Main.java:247)
at com.sun.tools.javac.Main.main(Main.java:16)
Ron Newman - SCJP 1.2 (100%, 7 August 2002)
Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch
Getting someone to think and try something out is much more useful than just telling them the answer.
Originally posted by madhur jain:
hi!
can anyone tell why the line 2 is giving error
<code>
public class Nested1
{
public static void main(String args[])
{
new Nested1().new Nested().method("first"); //1
//new Nested1().Nested.method("second"); //2
Nested1.Nested.method("third"); //3
}
static class Nested
{
static void method (String str) //4
{ System.out.println(str); }
}
}
</code>
madhur.
Originally posted by Fintan
In line 2 the compiler is treating the expression after the word "new" as an expression and evaluating the expression before trying to create a new object. i.e. Nested1().Nested.method("second").
It then finds that the evluated expression does not correspond to a class that it can create a new object from.
Did you see how Paul cut 87% off of his electric heat bill with 82 watts of micro heaters? |