Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.7.3
-
Fix Version/s: 1.8.5, 2.0-beta-2, 1.7.11
-
Component/s: None
-
Labels:None
-
Environment:Groovy 1.7.3 - Eclipse
-
Number of attachments :
Description
Hello.
I have an issue creating a Groovy class implementing an interface coded in Java with Generics:
Here is the code:
/* Java interface */ public interface Entity<T> { T getId(); } /* Groovy class */ class Car implements Entity<Long> { Long id; }
Car groovy class has a Long getId() method already, but it doesn't recognize it's enough to implement the interface method:
"Can't have an abstract method in a non-abstract class. The class 'Car' must be declared abstract or the method 'java.lang.Object getId()' must be implemented."
The same happens when the interface is coded in Groovy instead of Java.
I believe it's an important thing to support.
I am using Groovy 1.7.3.
Thank you.
Issue Links
- is related to
-
GROOVY-4645
Convariant returns causes compiler to fail when generating property getters
-
Activity
Cedric Champeau
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Link |
This issue is related to |
Cedric Champeau
made changes -
| Description |
Hello.
I have an issue creating a Groovy class implementing an interface coded in Java with Generics: Here is the code: /* Java interface */ public interface Entity<T> { T getId(); } /* Groovy class */ class Car implements Entity<Long> { Long id; } Car groovy class has a Long getId() method already, but it doesn't recognize it's enough to implement the interface method: "Can't have an abstract method in a non-abstract class. The class 'Car' must be declared abstract or the method 'java.lang.Object getId()' must be implemented." The same happens when the interface is coded in Groovy instead of Java. I believe it's an important thing to support. I am using Groovy 1.7.3. Thank you. |
Hello.
I have an issue creating a Groovy class implementing an interface coded in Java with Generics: Here is the code: {code} /* Java interface */ public interface Entity<T> { T getId(); } /* Groovy class */ class Car implements Entity<Long> { Long id; } {code} Car groovy class has a Long getId() method already, but it doesn't recognize it's enough to implement the interface method: "Can't have an abstract method in a non-abstract class. The class 'Car' must be declared abstract or the method 'java.lang.Object getId()' must be implemented." The same happens when the interface is coded in Groovy instead of Java. I believe it's an important thing to support. I am using Groovy 1.7.3. Thank you. |
Cedric Champeau
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Assignee | Cedric Champeau [ melix ] | |
| Fix Version/s | 2.0-beta-2 [ 18072 ] | |
| Fix Version/s | 1.7.11 [ 17244 ] | |
| Fix Version/s | 1.8.5 [ 18071 ] | |
| Resolution | Fixed [ 1 ] |
Paul King
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |
Formatting tags