Tengo problemas con la sintaxis del compilador y quiero que este método funcione en el Hashmap
objeto myMap
. Necesito el Add
método para tomar un String
valor y utilice la Hashmap
put
función para añadir un (clave, valor) par.
Traté de poner la iniciación del método de fábrica newMap
dentro de main
los 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.
Tiene dos errores:
En primer lugar usted debe hacer myMap
está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 HashMap
que usted espera que llamarlo así, y también Add
el 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);
}
}