bind: don't inherit java.lang.Object methods to Java interfaces
Before, the Java generator let Java interfaces inherit java.lang.Object methods. However, interfaces strictly doesn't inherit Object and since the JNI GetMethodID returns NULL for Object methods on interface classes, stop making Object a super class to interfaces. Change-Id: I3757c1ed02c07ccffab74a30132d5197742c6513 Reviewed-on: https://go-review.googlesource.com/30096 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
parent
e04a76eb64
commit
16fd47fa04
@ -73,7 +73,7 @@ public class ClassesTest extends InstrumentationTestCase {
|
||||
public void testGoObject() {
|
||||
Runnable r = new GoRunnable();
|
||||
r.run();
|
||||
assertTrue("GoRunnable.toString", r.toString().equals(Javapkg.ToStringPrefix));
|
||||
assertEquals("GoRunnable.toString", r.toString(), Javapkg.ToStringPrefix);
|
||||
Runnable r2 = ((GoRunnable)r).getThis();
|
||||
assertTrue("GoObject.this", r == r2);
|
||||
Object o = new GoObject();
|
||||
|
@ -22,6 +22,7 @@ const (
|
||||
)
|
||||
|
||||
type GoRunnable struct {
|
||||
lang.Object
|
||||
lang.Runnable
|
||||
this lang.Runnable
|
||||
}
|
||||
|
@ -454,7 +454,7 @@ func (j *importer) scanClass(s *bufio.Scanner, name string) (*Class, error) {
|
||||
if len(cls.Supers) == 0 {
|
||||
if name == "java.lang.Object" {
|
||||
cls.HasNoArgCon = true
|
||||
} else {
|
||||
} else if !cls.Interface {
|
||||
cls.Supers = append(cls.Supers, "java.lang.Object")
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user