In Intellij 15.0.3. und mit Java8 habe ich ein Problem bei der Verwendung ::new
. Insbesondere habe ich eine Klasse mit einem Standard-KonstruktorJava8-Berichte "kann Konstruktor nicht auflösen" durch Aufrufen von ":: new"
public class Container{
public Container(){}
}
Ich möchte eine Karte aus einer Liste erstellen, wie folgt:
public class Test{
private final Map<Key, Container> map;
@Before
public void setUp(){
List<Key> keys=...//Init the list
map = keys.stream().collect(Collectors.toMap(Function.identity(), Container::new));
}
}
In Intellij, new
ist rot und der Tooltip sagt cannot resolve constructor Container
Wenn ich () -> {new Container()}
habe ich auch cannot infer functional interface type Container
Jede Idee, warum?
'toMap' hat zwei Parameter. Der erste ist der _keyMapper_ (also habe ich 'Function.identity()', der zweite ist der _valueMapper_, der eine neue Instanz der 'Container' Klasse zurückgeben muss. Du invertierst Schlüssel und Wert. –
Genau was du willst doesn Es ergibt keinen Sinn – NimChimpsky