2014-02-10 7 views
-1

У меня есть два метода: один, который создает HashMap, и второй, который должен получить HashMap с первого. Может кто-нибудь, пожалуйста, помогите, как это сделать?Как передать HashMap между двумя методами

код:

public HashMap<Object, Integer> createHash(boolean include){ 


     HashMap<Object, Integer> newMap = new HashMap<Object, Integer>(); 

     if(!include){ 
      do some stuff 
     } 
     return newMap; 
} 


public ArrayList<String> getHash(boolean include){ 

     HashMap<Object, Integer> newMap = new newMap.createHash(); //getting error or below 

     HashMap<Object, Integer> newMap = new createHash();//error too 

      //here I would like to use newMap 

     return something; 
} 

EDIT: оба метода в том же классе

+0

вам необходимо передать логическое значение методу createhash в соответствии с сигнатурой метода. – markg

ответ

1

Метод createHash не является статической функцией, которая находится на некотором классе, , которые вы не показали нам , Правильный синтаксис для вызова этого метода, как это определено в настоящее время является:

//create an instance 
    MyFoo foo = new Foo(); // instance of class you haven't shown us 
    //invoke the createHash method on the foo instance... 
    Map<Object, Integer> newMap = foo.createHash(true); 

или

, если вы уже на экземпляре MyFoo, просто вызовите метод непосредственно:

Map<Object, Integer> newMap = createHash(true); 

Синтаксис, который вы используете:

new createHash(); 

не компилируется. Новое ключевое слово подходит только для конструкторов.

+1

TS говорит, что два метода находятся в одном классе. Поэтому не было бы необходимости выполнять «MyFoo foo = new MyFoo(); вещь. – martijnn2008

+0

Конечно, я предполагаю, что это было обновление. В этом случае просто вызовите метод createHash напрямую. –

+0

Если вы хотите использовать использование contructor и вызовите метод в той же строке, которую вы могли бы сделать: ... Карта myMap = (новый MyFoo()). getSomething(); – martijnn2008

Смежные вопросы