Capturas de tipo Java para comodines en colecciones

Me gustaría hacer esto (repro mínima):

String key = "foo";
Object value = new Bar();

if (target instanceof Map<?,?>) {
    Map<?,?> map = (Map<?,?>)target;
    map.put(key, value);
    ...

Pero me dicen esto:

El método put (captura # 25-of?, Captura # 26-of?) En el tipo Map no es aplicable para los argumentos (String, Object)

Parece que String y Object deberían estar bien aquí. Mi pregunta tiene dos partes: (1) ¿por qué? Y (2) ¿cómo puedo hacer que algo como esto funcione?

Respuesta 1

¿Mapa <?,?> Realmente significa, Mapa <? extiende Objeto,? extiende Objeto> Según el sistema de tipos Java, ¿solo puede obtener valores de parámetros de tipo especializados? extiende el comodín de las llamadas a métodos. No puedes pasarlo a los métodos.

PD: Probablemente quieras Mapa <Objeto, Objeto>

Respuesta: 2

De acuerdo, no puedo decirlo, pero necesito lo siguiente: C: \ Temp \ Something \ GroupName \ ... \ file.ts -> GroupName \ ... \ file.ts Quiero extraer la ruta de un carpeta hasta el final. Se me ocurrió esto ...

Tengo un método que obtiene registros de la tabla db de MySQL utilizando la API JDBC. El comando que he estado usando es: "SELECCIONAR columna_1, columna_2, ... DE la tabla;" Los nombres de columna se proporcionan a ...

Tengo una base de datos de solo lectura en mi aplicación de Android que actualizo periódicamente. La aplicación siempre lleva consigo la versión actualizada de la base de datos en sus activos. Incremento el número de versión que yo ...

Entonces, estoy tratando de hacer un programa que lea args y transforme todas las letras en mayúsculas sin el uso de toUpperCase (). La única forma que tengo que usar para procesar las letras individuales es con "- 'a' ...