Initialize Map<String, Object> instance from Map entries

Replace

Map.of(a,b,c); 

with

Map.ofEntries(a,b,c);

If you want to still use Map.of() then you shall paste keys and values explicitly.

Map.Entry() returns an immutable Map.Entry containing the given key and value. These entries are suitable for populating Map instances using the Map.ofEntries() method.

When to use Map.of() and when to use Map.ofEntries()


From jdk-9 you can use Map.of() to create Map with key value pairs

Map<String, Object> map = Map.of("a", new Object(), "b", new Object(), "c", new Object());

And also by using SimpleEntry

Map<String, Object> map = Map.ofEntries(
  new AbstractMap.SimpleEntry<>("a", new Object()),
  new AbstractMap.SimpleEntry<>("b", new Object()),
  new AbstractMap.SimpleEntry<>("c", new Object()));

Or by using Map.ofEntries OP suggestion


The simple answer is:

var a = Map.entry("a", new Object());
var b = Map.entry("b", new Object());
var c = Map.entry("c", new Object());

var m = Map.ofEntries(a,b,c);  // ! use Map.ofEntries not Map.of

And the type of Map.entry(key,val) is Map.Entry<K,V>, in case you were wondering.