Tener problemas de acceso con el método de fábrica objetos en HashMap

Código Newb:

Tengo problemas con la sintaxis del compilador y quiero que este método funcione en el Hashmapobjeto myMap. Necesito el Addmétodo para tomar un Stringvalor y utilice la Hashmap putfunción para añadir un (clave, valor) par.

Traté de poner la iniciación del método de fábrica newMapdentro de mainlos problemas de acceso y tenido.

 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);
  }   


}

error de compilación debido a elementos estáticos estáticos / no. Las hice todas estática para que todo sea accesible a toda la clase.

Guardar:

Tiene dos errores:

En primer lugar usted debe hacer myMapestático como sigue:

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

En segundo lugar se debe cambiar myMap.Add("apple");a Add("apple");porque se escribe un método para la clase principal no para HashMapque usted espera que llamarlo así, y también Addel método es estático y tiene acceso a myMap.

clase total sería de la siguiente manera:

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);
    }

}

Supongo que te gusta

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