Java - Cómo crear un objeto Clase <Mapa <Objeto, Lista <Objeto> >>

Lo siento si esta es una pregunta novata. Tengo un método que toma un objeto Class con el tipo genérico como parámetro. Puedo hacer lo siguiente:

Class cs = Map.class;

pero cuando paso esto obtengo un "NoSuchMethodException" ya que el método se declara:

public void doSomething(Class<Map<Object, List<Object>>> theclass){
...     
}

He intentado lanzarlo así:

Class cs = (Class<Map<Object, List<Object>>>)(Class<?>)Map.class;

pero sigo teniendo la misma excepción.

¿Hay alguna forma de hacer esto?

No puedo publicar el código completo aquí, pero he reproducido el error: la aplicación en realidad está usando reflexión. No puedo publicar el código original aquí, pero he reproducido la excepción:

import java.lang.reflect.Method;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Class c = null;
        try {
            c = Class.forName("Second");
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        String m = "doSomething";
        Method method = null;
        Class cs = Map.class;
        try{
            method = c.getMethod(m, cs);
        } catch (NoSuchMethodException e){
            e.printStackTrace();
        }
    }
}

class Second{
    public static void doSomething(Class<Map<Object, List<Object>>> theclass){
        System.out.println("HERE I AM!");   
    }   
}

La excepción:

java.lang.NoSuchMethodException: Second.doSomething(java.util.Map)
    at java.lang.Class.throwNoSuchMethodException(Class.java:283)
    at java.lang.Class.getMethod(Class.java:825)
    at Main.main(Main.java:16)
Respuesta 1

Si estás haciendo ese casting, creo que estás luchando contra el sistema de tipos diseñado para ayudarte. Para principiantes,

Class cs = Map.class;

es un tipo sin formato (ver aquí para más información). ¿Ha intentado crear instancias de una clase de su requerido Maptipo, y que pasa a la clase de los que a su función?

p.ej

(new HashMap<Object, List<Object>>()).getClass();

Nota: como ruakh como se señaló en los comentarios anteriores, tendría que pasar una instancia de la interfaz de Mapa, y como tal, la declaración del método anterior lo prohibiría. ¡Básicamente hay un problema fundamental de diseño de API aquí!

Respuesta: 2

Tengo que calcular la diferencia entre dos fechas. Aquí está mi código: System.out.println ("date1" + date1); System.out.println ("fecha2" + fecha2); totalDifference = date2 ....

Tengo entradas como el siguiente fragmento, Fragmento de entrada: <div class = "a"> <table> <col width = "4" /> <col width = "8" /> <col width = "5" /> .. .

He escrito el código que tiene que encontrar el tamaño del archivo usando la solicitud http HEAD a través de sockets ... lo intento en mi casa con una conexión no proxy que funciona ... pero cuando lo intento en mi universidad con un ...

With scala I have some data, for ex. val values = Seq(0, 2, 10, 50) And I defined buckets, eg. val buckets = TreeMap[Int, Double]((0, -0.001), (1, 1.5), ...