diff --git a/java/androidmk.go b/java/androidmk.go
index fff034c..c9a05c3 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -235,7 +235,7 @@
 		Include:    "$(BUILD_SYSTEM)/soong_java_prebuilt.mk",
 		Extra: []android.AndroidMkExtraFunc{
 			func(w io.Writer, outputFile android.Path) {
-				if jd.properties.Installable == nil || *jd.properties.Installable == true {
+				if BoolDefault(jd.properties.Installable, true) {
 					fmt.Fprintln(w, "LOCAL_DROIDDOC_DOC_ZIP := ", jd.docZip.String())
 				}
 				if jd.stubsSrcJar != nil {
@@ -253,7 +253,7 @@
 		Include:    "$(BUILD_SYSTEM)/soong_java_prebuilt.mk",
 		Extra: []android.AndroidMkExtraFunc{
 			func(w io.Writer, outputFile android.Path) {
-				if ddoc.Javadoc.properties.Installable == nil || *ddoc.Javadoc.properties.Installable == true {
+				if BoolDefault(ddoc.Javadoc.properties.Installable, true) {
 					fmt.Fprintln(w, "LOCAL_DROIDDOC_DOC_ZIP := ", ddoc.Javadoc.docZip.String())
 				}
 				if ddoc.Javadoc.stubsSrcJar != nil {
diff --git a/java/java.go b/java/java.go
index fd0719c..a2eb810 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1137,7 +1137,7 @@
 }
 
 func (j *Module) installable() bool {
-	return j.properties.Installable == nil || *j.properties.Installable
+	return BoolDefault(j.properties.Installable, true)
 }
 
 var _ Dependency = (*Library)(nil)
@@ -1231,7 +1231,7 @@
 
 func (j *Test) DepsMutator(ctx android.BottomUpMutatorContext) {
 	j.deps(ctx)
-	if j.testProperties.Junit == nil || *j.testProperties.Junit == true {
+	if BoolDefault(j.testProperties.Junit, true) {
 		ctx.AddDependency(ctx.Module(), staticLibTag, "junit")
 	}
 }
@@ -1460,5 +1460,6 @@
 }
 
 var Bool = proptools.Bool
+var BoolDefault = proptools.BoolDefault
 var String = proptools.String
 var inList = android.InList
