java - Inner class declaration and initialization -


i used code in c++, have convert project c++ java. in c++ using data structure pretty simple. trying replicate same thing, such java inner class , static nested class. after reading several examples online, , trying different versions, far got:

public class main {   public static void main( string[] args ) {   ...     classouter outerobj = new classouter();      classouter.datainner value = outerobj.new classouter.datainner();   } }  class classouter{    public static class datainner{     public int x;   }   ...   protected void getno()   { value.x=integer.parseint("493");    } } 

however, when try compile, gives me error:

$ javac -cp "./" main.java main.java:15: error: '(' expected     classouter.datainner value = outerobj.new classouter.datainner(); 

any clue missing here?

classouter.datainner value = outerobj.new classouter.datainner(); 

this syntax applies inner classes (i.e. non static nested classes). if that's want, remove static keyword public static class datainner.

edit :

also change

classouter.datainner value = outerobj.new classouter.datainner(); 

to

classouter.datainner value = outerobj.new datainner(); 

you don't specify outer type when using enclosing instance initialize inner instance.

and line outerobj.value.x=integer.parseint("493"); not valid inside outer class's getno() method, since outerobj , value local variables known main method.

if wish outer instance update of inner instances, must obtain reference it. here's 1 way :

public class main {   public static void main( string[] args ) {   ...     classouter outerobj = new classouter();         classouter.datainner value = outerobj.new datainner();     outerobj.setinner (value);   } }  class classouter{    public static class datainner{     public int x;   }   ...   private datainner inner = null;   public void setinner (datainner inner) {       this.inner = inner;   }   protected void getno()   {       inner.x=integer.parseint("493");    } } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -