add java import
diff --git a/java_exception/java_clone_not_supported_exception.go b/java_exception/java_clone_not_supported_exception.go
index f8ea4f5..3a9762f 100644
--- a/java_exception/java_clone_not_supported_exception.go
+++ b/java_exception/java_clone_not_supported_exception.go
@@ -21,9 +21,9 @@
 type CloneNotSupportedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
-	SuppressedExceptions []Exception
+	SuppressedExceptions []CloneNotSupportedException
 	StackTrace           []StackTraceElement
-	Cause                *Exception
+	Cause                *CloneNotSupportedException
 }
 
 func NewCloneNotSupportedException(detailMessage string) *CloneNotSupportedException {
diff --git a/java_exception/java_interrupted_exception.go b/java_exception/java_interrupted_exception.go
index c37fad1..ef763c4 100644
--- a/java_exception/java_interrupted_exception.go
+++ b/java_exception/java_interrupted_exception.go
@@ -21,9 +21,9 @@
 type InterruptedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
-	SuppressedExceptions []Exception
+	SuppressedExceptions []InterruptedException
 	StackTrace           []StackTraceElement
-	Cause                *Exception
+	Cause                *InterruptedException
 }
 
 func NewInterruptedException(detailMessage string) *InterruptedException {
diff --git a/java_exception/java_interrupted_io_exception.go b/java_exception/java_interrupted_io_exception.go
index 0d97c6d..019d45b 100644
--- a/java_exception/java_interrupted_io_exception.go
+++ b/java_exception/java_interrupted_io_exception.go
@@ -21,9 +21,9 @@
 type InterruptedIOException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
-	SuppressedExceptions []Exception
+	SuppressedExceptions []InterruptedIOException
 	StackTrace           []StackTraceElement
-	Cause                *Exception
+	Cause                *InterruptedIOException
 }
 
 func NewInterruptedIOException(detailMessage string) *InterruptedIOException {
diff --git a/java_exception/java_lambda_conversion_exception.go b/java_exception/java_lambda_conversion_exception.go
index 6f9c3d5..852569e 100644
--- a/java_exception/java_lambda_conversion_exception.go
+++ b/java_exception/java_lambda_conversion_exception.go
@@ -21,9 +21,9 @@
 type LambdaConversionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
-	SuppressedExceptions []Exception
+	SuppressedExceptions []LambdaConversionException
 	StackTrace           []StackTraceElement
-	Cause                *Exception
+	Cause                *LambdaConversionException
 }
 
 func NewLambdaConversionException(detailMessage string) *LambdaConversionException {
diff --git a/java_exception/java_unmodifiable_class_exception.go b/java_exception/java_unmodifiable_class_exception.go
index 11d63c6..18a0c70 100644
--- a/java_exception/java_unmodifiable_class_exception.go
+++ b/java_exception/java_unmodifiable_class_exception.go
@@ -21,9 +21,9 @@
 type UnmodifiableClassException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
-	SuppressedExceptions []Exception
+	SuppressedExceptions []UnmodifiableClassException
 	StackTrace           []StackTraceElement
-	Cause                *Exception
+	Cause                *UnmodifiableClassException
 }
 
 func NewUnmodifiableClassException(detailMessage string) *UnmodifiableClassException {
diff --git a/test_hessian/src/main/java/test/TestThrowable.java b/test_hessian/src/main/java/test/TestThrowable.java
index b6386ae..f7ddc4a 100644
--- a/test_hessian/src/main/java/test/TestThrowable.java
+++ b/test_hessian/src/main/java/test/TestThrowable.java
@@ -16,6 +16,8 @@
 
 import java.io.*;
 import java.lang.invoke.WrongMethodTypeException;
+import java.lang.invoke.LambdaConversionException;
+import java.lang.instrument.UnmodifiableClassException;
 import java.lang.reflect.*;
 
 public class TestThrowable {