dennis lucero created NETBEANS-3802:
---------------------------------------
Summary: Hint suggests invalid replacement with lambda for
implementations of interfaces with only default methods
Key: NETBEANS-3802
URL: https://issues.apache.org/jira/browse/NETBEANS-3802
Project: NetBeans
Issue Type: Bug
Components: java - Hints
Affects Versions: 11.2
Environment: JDK 13
Reporter: dennis lucero
{code:java}
interface Dog {
default void run() {
}
default void bark() {
}
}
public static void foo() {
final Dog dog = new Dog() {
@Override
public void bark() {
System.out.println("Woof");
}
};
}
{code}
For this code NetBeans has a hint stating
{quote}This anonymous inner class creation can be turned into a lambda
expression.
{quote}
in the line with {{new Dog()}}. Replacing the code using the hint results in
{code:java}
final Dog dog = () -> {
System.out.println("Woof");
};
{code}
which is invalid code
{quote}incompatible types: Dog is not a functional interface
no abstract method found in interface Dog
{quote}
(Real world example:
http://jdbi.org/apidocs/org/jdbi/v3/core/statement/SqlLogger.html This style of
interfaces would also be a nice alternative to Swing’s
{{*Listener}}/{{*Adapter}} pairs.)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists