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>
diff --git a/bind/java/ClassesTest.java b/bind/java/ClassesTest.java
index 54d3f4e..6193307 100644
--- a/bind/java/ClassesTest.java
+++ b/bind/java/ClassesTest.java
@@ -73,7 +73,7 @@
 	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();
diff --git a/bind/testpkg/javapkg/classes.go b/bind/testpkg/javapkg/classes.go
index 9915391..865c0ab 100644
--- a/bind/testpkg/javapkg/classes.go
+++ b/bind/testpkg/javapkg/classes.go
@@ -22,6 +22,7 @@
 )
 
 type GoRunnable struct {
+	lang.Object
 	lang.Runnable
 	this lang.Runnable
 }
diff --git a/internal/importers/java/java.go b/internal/importers/java/java.go
index 0eb4764..69b2254 100644
--- a/internal/importers/java/java.go
+++ b/internal/importers/java/java.go
@@ -454,7 +454,7 @@
 	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")
 		}
 	}