Question: I have this code:

```
new Thread(new Runnable() {

    @Override
    public void run() {
        //implement
    }

});

```

My IDE(intellij) suggest to use:

```
new Thread(() -> {
    //implement
});

```

This guarantee is the same thing? I ask this because class [Thread](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#Thread()) has multiple constructors.

Answer: 
Yes, that is equivalent, trust your IDE! 

Regarding multiple constructors: 

* you have exactly one constructor argument -> two possible constructor implementations
* is `() -> { //implement }` a `String`? - **no** -> only one possible constructor to call -> the one for `Runnable`, which you would call on your own as well.
Yes, it is the same. You can use the lambda Expression because interface Runnable has the Annotation @FunctionalInterface.