Tendo problemas de acesso com o método de fábrica de objetos em HashMap

Código Newb:

Estou tendo problemas de compilação com a sintaxe e quiser este método para trabalho no Hashmapobjeto myMap. Eu preciso o Addmétodo de tomar um Stringvalor e usar a Hashmap putfunção para adicionar um (chave, valor) par.

Eu tentei colocar a iniciação método de fábrica de newMapdentro mainquestões de acesso e tinha.

 import java.util.*;

  public class MyMap {

  public static String item;
  public static String brand;

  Map<String, String> myMap = newMap();

   public static void main(String[] args) {

    myMap.Add("apple");   

   }

   public static HashMap<String, String> newMap() {
   return new HashMap<>(); 
    } 

   public static void Add(String item)  {
    String brand = "nobrand";
    myMap.put(item, brand);
  }   


}

erro de compilação devido a itens estáticos estáticos / não. Eu fiz todos eles estática para fazer tudo acessível em toda a classe.

Poupe:

Você tem dois erros:

Primeiro você deve fazer myMapestática assim:

static Map<String, String> myMap = newMap();

Em segundo lugar você deve mudar myMap.Add("apple");para Add("apple");porque você escrever um método para a classe principal não para HashMapque você espera de chamá-lo assim e também Addmétodo é estático e tem acesso a myMap.

classe total seria assim:

import java.util.HashMap;
import java.util.Map;

public class Test {

    public static String item;
    public static String brand;

    static Map<String, String> myMap = newMap();

    public static void main(String[] args) {

        Add("apple");

    }

    public static HashMap<String, String> newMap() {
        return new HashMap<>();
    }

    public static void Add(String item) {
        String brand = "nobrand";
        myMap.put(item, brand);
    }

}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=205072&siteId=1
Recomendado
Clasificación