Merge pull request #160 from wongoo/1.4

release note and notice for v1.4.0
diff --git a/date_test.go b/date_test.go
index c55df10..c700cf5 100644
--- a/date_test.go
+++ b/date_test.go
@@ -40,6 +40,7 @@
 	Date3   ***time.Time
 }
 
+//JavaClassName  java fully qualified path
 func (DateDemo) JavaClassName() string {
 	return "test.model.DateDemo"
 }
diff --git a/hessian_test.go b/hessian_test.go
index bdbea2c..fa74abe 100644
--- a/hessian_test.go
+++ b/hessian_test.go
@@ -34,6 +34,7 @@
 	B int
 }
 
+//JavaClassName  java fully qualified path
 func (c *Case) JavaClassName() string {
 	return "com.test.case"
 }
diff --git a/java_exception/annotation_type_mismatch_exception.go b/java_exception/annotation_type_mismatch_exception.go
index b7d84ae..c0e482d 100644
--- a/java_exception/annotation_type_mismatch_exception.go
+++ b/java_exception/annotation_type_mismatch_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// AnnotationTypeMismatchException represents an exception of the same name in java
 type AnnotationTypeMismatchException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -27,14 +28,17 @@
 	Cause                Throwabler
 }
 
+// NewAnnotationTypeMismatchException is the constructor
 func NewAnnotationTypeMismatchException(detailMessage string) *AnnotationTypeMismatchException {
 	return &AnnotationTypeMismatchException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e AnnotationTypeMismatchException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (AnnotationTypeMismatchException) JavaClassName() string {
 	return "java.lang.annotation.AnnotationTypeMismatchException"
 }
diff --git a/java_exception/arithmetic_exception.go b/java_exception/arithmetic_exception.go
index a1fb2d7..8af4640 100644
--- a/java_exception/arithmetic_exception.go
+++ b/java_exception/arithmetic_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ArithmeticException represents an exception of the same name in java
 type ArithmeticException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewArithmeticException is the constructor
 func NewArithmeticException(detailMessage string) *ArithmeticException {
 	return &ArithmeticException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ArithmeticException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ArithmeticException) JavaClassName() string {
 	return "java.lang.ArithmeticException"
 }
diff --git a/java_exception/array_index_out_of_bounds_exception.go b/java_exception/array_index_out_of_bounds_exception.go
index b332f1a..ef85247 100644
--- a/java_exception/array_index_out_of_bounds_exception.go
+++ b/java_exception/array_index_out_of_bounds_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ArrayIndexOutOfBoundsException represents an exception of the same name in java
 type ArrayIndexOutOfBoundsException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewArrayIndexOutOfBoundsException is the constructor
 func NewArrayIndexOutOfBoundsException(detailMessage string) *ArrayIndexOutOfBoundsException {
 	return &ArrayIndexOutOfBoundsException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ArrayIndexOutOfBoundsException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ArrayIndexOutOfBoundsException) JavaClassName() string {
 	return "java.lang.ArrayIndexOutOfBoundsException"
 }
diff --git a/java_exception/array_store_exception.go b/java_exception/array_store_exception.go
index fdabadf..98a23b9 100644
--- a/java_exception/array_store_exception.go
+++ b/java_exception/array_store_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ArrayStoreException represents an exception of the same name in java
 type ArrayStoreException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewArrayStoreException is the constructor
 func NewArrayStoreException(detailMessage string) *ArrayStoreException {
 	return &ArrayStoreException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ArrayStoreException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ArrayStoreException) JavaClassName() string {
 	return "java.lang.ArrayStoreException"
 }
diff --git a/java_exception/backing_store_exception.go b/java_exception/backing_store_exception.go
index de67c35..8224aaa 100644
--- a/java_exception/backing_store_exception.go
+++ b/java_exception/backing_store_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// BackingStoreException represents an exception of the same name in java
 type BackingStoreException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewBackingStoreException is the constructor
 func NewBackingStoreException(detailMessage string) *BackingStoreException {
 	return &BackingStoreException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e BackingStoreException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (BackingStoreException) JavaClassName() string {
 	return "java.util.prefs.BackingStoreException"
 }
diff --git a/java_exception/broken_barrier_exception.go b/java_exception/broken_barrier_exception.go
index 58bb5d8..47fbc0e 100644
--- a/java_exception/broken_barrier_exception.go
+++ b/java_exception/broken_barrier_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// BrokenBarrierException represents an exception of the same name in java
 type BrokenBarrierException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewBrokenBarrierException is the constructor
 func NewBrokenBarrierException(detailMessage string) *BrokenBarrierException {
 	return &BrokenBarrierException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e BrokenBarrierException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (BrokenBarrierException) JavaClassName() string {
 	return "java.util.concurrent.BrokenBarrierException"
 }
diff --git a/java_exception/cancellation_exception.go b/java_exception/cancellation_exception.go
index ab49274..facaa70 100644
--- a/java_exception/cancellation_exception.go
+++ b/java_exception/cancellation_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// CancellationException represents an exception of the same name in java
 type CancellationException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewCancellationException is the constructor
 func NewCancellationException(detailMessage string) *CancellationException {
 	return &CancellationException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e CancellationException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (CancellationException) JavaClassName() string {
 	return "java.util.concurrent.CancellationException"
 }
diff --git a/java_exception/class_not_found_exception.go b/java_exception/class_not_found_exception.go
index 05cb13a..b987e74 100644
--- a/java_exception/class_not_found_exception.go
+++ b/java_exception/class_not_found_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ClassNotFoundException represents an exception of the same name in java
 type ClassNotFoundException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -26,14 +27,17 @@
 	Ex                   Throwabler
 }
 
+// NewClassNotFoundException is the constructor
 func NewClassNotFoundException(detailMessage string, ex Throwabler) *ClassNotFoundException {
 	return &ClassNotFoundException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}, Ex: ex}
 }
 
+// Error output error message
 func (e ClassNotFoundException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ClassNotFoundException) JavaClassName() string {
 	return "java.lang.ClassNotFoundException"
 }
diff --git a/java_exception/classc_cast_exception.go b/java_exception/classc_cast_exception.go
index 5ecfb41..4d50d18 100644
--- a/java_exception/classc_cast_exception.go
+++ b/java_exception/classc_cast_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ClassCastException represents an exception of the same name in java
 type ClassCastException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewClassCastException is the constructor
 func NewClassCastException(detailMessage string) *ClassCastException {
 	return &ClassCastException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ClassCastException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ClassCastException) JavaClassName() string {
 	return "java.lang.ClassCastException"
 }
diff --git a/java_exception/clone_not_supported_exception.go b/java_exception/clone_not_supported_exception.go
index fbc978e..38bb4ec 100644
--- a/java_exception/clone_not_supported_exception.go
+++ b/java_exception/clone_not_supported_exception.go
@@ -21,6 +21,7 @@
 // CloneNotSupportedException
 ////////////////////////////
 
+// CloneNotSupportedException represents an exception of the same name in java
 type CloneNotSupportedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -29,14 +30,17 @@
 	Cause                Throwabler
 }
 
+// NewCloneNotSupportedException is the constructor
 func NewCloneNotSupportedException(detailMessage string) *CloneNotSupportedException {
 	return &CloneNotSupportedException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e CloneNotSupportedException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (CloneNotSupportedException) JavaClassName() string {
 	return "java.lang.CloneNotSupportedException"
 }
diff --git a/java_exception/completion_exception.go b/java_exception/completion_exception.go
index 13629f1..43e3d17 100644
--- a/java_exception/completion_exception.go
+++ b/java_exception/completion_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// CompletionException represents an exception of the same name in java
 type CompletionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e CompletionException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (CompletionException) JavaClassName() string {
 	return "java.util.concurrent.CompletionException"
 }
+
+// NewCompletionException is the constructor
 func NewCompletionException(detailMessage string) *CompletionException {
 	return &CompletionException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/concurrent_modification_exception.go b/java_exception/concurrent_modification_exception.go
index 06d4e16..4f73bb5 100644
--- a/java_exception/concurrent_modification_exception.go
+++ b/java_exception/concurrent_modification_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ConcurrentModificationException represents an exception of the same name in java
 type ConcurrentModificationException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e ConcurrentModificationException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ConcurrentModificationException) JavaClassName() string {
 	return "java.util.ConcurrentModificationException"
 }
+
+// NewConcurrentModificationException is the constructor
 func NewConcurrentModificationException(detailMessage string) *ConcurrentModificationException {
 	return &ConcurrentModificationException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/data_format_exception.go b/java_exception/data_format_exception.go
index a9789bd..ce5fed3 100644
--- a/java_exception/data_format_exception.go
+++ b/java_exception/data_format_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// DataFormatException represents an exception of the same name in java
 type DataFormatException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewDataFormatException is the constructor
 func NewDataFormatException(detailMessage string) *DataFormatException {
 	return &DataFormatException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e DataFormatException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (DataFormatException) JavaClassName() string {
 	return "java.util.zip.DataFormatException"
 }
diff --git a/java_exception/date_time_exception.go b/java_exception/date_time_exception.go
index b08d869..61fb270 100644
--- a/java_exception/date_time_exception.go
+++ b/java_exception/date_time_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// DateTimeException represents an exception of the same name in java
 type DateTimeException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewDateTimeException is the constructor
 func NewDateTimeException(detailMessage string) *DateTimeException {
 	return &DateTimeException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e DateTimeException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (DateTimeException) JavaClassName() string {
 	return "java.time.DateTimeException"
 }
diff --git a/java_exception/date_time_parse_exception.go b/java_exception/date_time_parse_exception.go
index ce40a84..e8cb5d6 100644
--- a/java_exception/date_time_parse_exception.go
+++ b/java_exception/date_time_parse_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// DateTimeParseException represents an exception of the same name in java
 type DateTimeParseException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -27,14 +28,17 @@
 	ErrorIndex           int32
 }
 
+// NewDateTimeParseException is the constructor
 func NewDateTimeParseException(detailMessage string, parsedString string, errorIndex int32) *DateTimeParseException {
 	return &DateTimeParseException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}, ParsedString: parsedString, ErrorIndex: errorIndex}
 }
 
+// Error output error message
 func (e DateTimeParseException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (DateTimeParseException) JavaClassName() string {
 	return "java.time.format.DateTimeParseException"
 }
diff --git a/java_exception/dubbo_generic_exception.go b/java_exception/dubbo_generic_exception.go
index 7e39c7d..f3e0e45 100644
--- a/java_exception/dubbo_generic_exception.go
+++ b/java_exception/dubbo_generic_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// DubboGenericException represents an exception of the same name in java
 type DubboGenericException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -27,14 +28,17 @@
 	ExceptionMessage     string
 }
 
+// NewDubboGenericException is the constructor
 func NewDubboGenericException(exceptionClass, exceptionMessage string) *DubboGenericException {
 	return &DubboGenericException{ExceptionClass: exceptionClass, ExceptionMessage: exceptionMessage}
 }
 
+// Error output error message
 func (e DubboGenericException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (DubboGenericException) JavaClassName() string {
 	return "com.alibaba.dubbo.rpc.service.GenericException"
 }
diff --git a/java_exception/duplicate_format_flags_exception.go b/java_exception/duplicate_format_flags_exception.go
index ab7f3f9..d99f477 100644
--- a/java_exception/duplicate_format_flags_exception.go
+++ b/java_exception/duplicate_format_flags_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// DuplicateFormatFlagsException represents an exception of the same name in java
 type DuplicateFormatFlagsException struct {
 	SerialVersionUID     int64
 	Flags                string
@@ -26,6 +27,7 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e DuplicateFormatFlagsException) Error() string {
 	if e.DetailMessage == "" {
 		return "flags=" + e.Flags
@@ -35,9 +37,12 @@
 
 }
 
+// JavaClassName  java fully qualified path
 func (DuplicateFormatFlagsException) JavaClassName() string {
 	return "java.util.DuplicateFormatFlagsException"
 }
+
+// NewDuplicateFormatFlagsException is the constructor
 func NewDuplicateFormatFlagsException(detailMessage string) *DuplicateFormatFlagsException {
 	return &DuplicateFormatFlagsException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/empty_stack_exception.go b/java_exception/empty_stack_exception.go
index bf63ff1..91793ab 100644
--- a/java_exception/empty_stack_exception.go
+++ b/java_exception/empty_stack_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// EmptyStackException represents an exception of the same name in java
 type EmptyStackException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e EmptyStackException) Error() string {
 	return "EmptyStackException"
 }
 
+// JavaClassName  java fully qualified path
 func (EmptyStackException) JavaClassName() string {
 	return "java.util.EmptyStackException"
 }
+
+// NewEmptyStackException is the constructor
 func NewEmptyStackException(detailMessage string) *EmptyStackException {
 	return &EmptyStackException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/enum_constant_not_present_exception.go b/java_exception/enum_constant_not_present_exception.go
index 2751054..1e6c96e 100644
--- a/java_exception/enum_constant_not_present_exception.go
+++ b/java_exception/enum_constant_not_present_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// EnumConstantNotPresentException represents an exception of the same name in java
 type EnumConstantNotPresentException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -27,14 +28,17 @@
 	Cause                Throwabler
 }
 
+// NewEnumConstantNotPresentException is the constructor
 func NewEnumConstantNotPresentException(detailMessage string) *EnumConstantNotPresentException {
 	return &EnumConstantNotPresentException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e EnumConstantNotPresentException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (EnumConstantNotPresentException) JavaClassName() string {
 	return "java.lang.EnumConstantNotPresentException"
 }
diff --git a/java_exception/eof_exception.go b/java_exception/eof_exception.go
index b7ea51c..7e72123 100644
--- a/java_exception/eof_exception.go
+++ b/java_exception/eof_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// EOFException represents an exception of the same name in java
 type EOFException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewEOFException is the constructor
 func NewEOFException(detailMessage string) *EOFException {
 	return &EOFException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e EOFException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (EOFException) JavaClassName() string {
 	return "java.io.EOFException"
 }
diff --git a/java_exception/exception.go b/java_exception/exception.go
index 36ee760..19f952a 100644
--- a/java_exception/exception.go
+++ b/java_exception/exception.go
@@ -21,6 +21,7 @@
 // Throwable interface
 ////////////////////////////
 
+// Throwabler represents an exception of the same name in java
 type Throwabler interface {
 	Error() string
 	JavaClassName() string
@@ -29,7 +30,7 @@
 ////////////////////////////
 // Throwable
 ////////////////////////////
-
+// Throwable represents an exception of the same name in java
 type Throwable struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -38,14 +39,17 @@
 	Cause                Throwabler
 }
 
+// NewThrowable is the constructor
 func NewThrowable(detailMessage string) *Throwable {
 	return &Throwable{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e Throwable) Error() string {
 	return e.DetailMessage
 }
 
+//JavaClassName  java fully qualified path
 func (Throwable) JavaClassName() string {
 	return "java.lang.Throwable"
 }
@@ -70,6 +74,7 @@
 	return e.DetailMessage
 }
 
+//JavaClassName  java fully qualified path
 func (Exception) JavaClassName() string {
 	return "java.lang.Exception"
 }
@@ -85,6 +90,7 @@
 	LineNumber     int
 }
 
+//JavaClassName  java fully qualified path
 func (StackTraceElement) JavaClassName() string {
 	return "java.lang.StackTraceElement"
 }
@@ -97,6 +103,7 @@
 	Name string
 }
 
+//JavaClassName  java fully qualified path
 func (Method) JavaClassName() string {
 	return "java.lang.reflect.Method"
 }
diff --git a/java_exception/execution_exception.go b/java_exception/execution_exception.go
index 24dd058..ea75cbb 100644
--- a/java_exception/execution_exception.go
+++ b/java_exception/execution_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ExecutionException represents an exception of the same name in java
 type ExecutionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewExecutionException is the constructor
 func NewExecutionException(detailMessage string) *ExecutionException {
 	return &ExecutionException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ExecutionException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ExecutionException) JavaClassName() string {
 	return "java.util.concurrent.ExecutionException"
 }
diff --git a/java_exception/file_not_found_exception.go b/java_exception/file_not_found_exception.go
index bc69b72..2a09aba 100644
--- a/java_exception/file_not_found_exception.go
+++ b/java_exception/file_not_found_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// FileNotFoundException represents an exception of the same name in java
 type FileNotFoundException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewFileNotFoundException is the constructor
 func NewFileNotFoundException(detailMessage string) *FileNotFoundException {
 	return &FileNotFoundException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e FileNotFoundException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (FileNotFoundException) JavaClassName() string {
 	return "java.io.FileNotFoundException"
 }
diff --git a/java_exception/formatter_closed_exception.go b/java_exception/formatter_closed_exception.go
index c98e28b..61c8277 100644
--- a/java_exception/formatter_closed_exception.go
+++ b/java_exception/formatter_closed_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// FormatterClosedException represents an exception of the same name in java
 type FormatterClosedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewFormatterClosedException is the constructor
 func NewFormatterClosedException() *FormatterClosedException {
 	return &FormatterClosedException{StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e FormatterClosedException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (FormatterClosedException) JavaClassName() string {
 	return "java.util.FormatterClosedException"
 }
diff --git a/java_exception/illegal_access_exception.go b/java_exception/illegal_access_exception.go
index bd3e9c8..06a1d57 100644
--- a/java_exception/illegal_access_exception.go
+++ b/java_exception/illegal_access_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllegalAccessException represents an exception of the same name in java
 type IllegalAccessException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIllegalAccessException is the constructor
 func NewIllegalAccessException(detailMessage string) *IllegalAccessException {
 	return &IllegalAccessException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalAccessException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalAccessException) JavaClassName() string {
 	return "java.lang.IllegalAccessException"
 }
diff --git a/java_exception/illegal_argument_exception.go b/java_exception/illegal_argument_exception.go
index 7b275d9..c8db71c 100644
--- a/java_exception/illegal_argument_exception.go
+++ b/java_exception/illegal_argument_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllegalArgumentException represents an exception of the same name in java
 type IllegalArgumentException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIllegalArgumentException is the constructor
 func NewIllegalArgumentException(detailMessage string) *IllegalArgumentException {
 	return &IllegalArgumentException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalArgumentException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalArgumentException) JavaClassName() string {
 	return "java.lang.IllegalArgumentException"
 }
diff --git a/java_exception/illegal_classFormat_exception.go b/java_exception/illegal_classFormat_exception.go
index b0dbf78..5411529 100644
--- a/java_exception/illegal_classFormat_exception.go
+++ b/java_exception/illegal_classFormat_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllegalClassFormatException represents an exception of the same name in java
 type IllegalClassFormatException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIllegalClassFormatException is the constructor
 func NewIllegalClassFormatException(detailMessage string) *IllegalClassFormatException {
 	return &IllegalClassFormatException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalClassFormatException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalClassFormatException) JavaClassName() string {
 	return "java.lang.instrument.IllegalClassFormatException"
 }
diff --git a/java_exception/illegal_format_code_point_exception.go b/java_exception/illegal_format_code_point_exception.go
index 2bf2e71..79cdd2f 100644
--- a/java_exception/illegal_format_code_point_exception.go
+++ b/java_exception/illegal_format_code_point_exception.go
@@ -19,6 +19,7 @@
 
 import "fmt"
 
+// IllegalFormatCodePointException represents an exception of the same name in java
 type IllegalFormatCodePointException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -28,14 +29,17 @@
 	C                    int32
 }
 
+// NewIllegalFormatCodePointException is the constructor
 func NewIllegalFormatCodePointException(c int32) *IllegalFormatCodePointException {
 	return &IllegalFormatCodePointException{C: c, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalFormatCodePointException) Error() string {
 	return fmt.Sprintf("Code point = %#x", e.C)
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalFormatCodePointException) JavaClassName() string {
 	return "java.util.IllegalFormatCodePointException"
 }
diff --git a/java_exception/illegal_format_conversion_exception.go b/java_exception/illegal_format_conversion_exception.go
index 651bddf..83a4695 100644
--- a/java_exception/illegal_format_conversion_exception.go
+++ b/java_exception/illegal_format_conversion_exception.go
@@ -19,6 +19,7 @@
 
 import "fmt"
 
+// IllegalFormatConversionException represents an exception of the same name in java
 type IllegalFormatConversionException struct {
 	SerialVersionUID     int64
 	C                    string
@@ -29,13 +30,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e IllegalFormatConversionException) Error() string {
 	return fmt.Sprintf("%v != %v", e.C, e.Arg.Name)
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalFormatConversionException) JavaClassName() string {
 	return "java.util.IllegalFormatConversionException"
 }
+
+// NewIllegalFormatConversionException is the constructor
 func NewIllegalFormatConversionException(detailMessage string) *IllegalFormatConversionException {
 	return &IllegalFormatConversionException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/illegal_format_flags_exception.go b/java_exception/illegal_format_flags_exception.go
index 3549255..4a2434f 100644
--- a/java_exception/illegal_format_flags_exception.go
+++ b/java_exception/illegal_format_flags_exception.go
@@ -19,6 +19,7 @@
 
 import "fmt"
 
+// IllegalFormatFlagsException represents an exception of the same name in java
 type IllegalFormatFlagsException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -28,14 +29,17 @@
 	Flags                string
 }
 
+// NewIllegalFormatFlagsException is the constructor
 func NewIllegalFormatFlagsException(flags string) *IllegalFormatFlagsException {
 	return &IllegalFormatFlagsException{Flags: flags, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalFormatFlagsException) Error() string {
 	return fmt.Sprintf("Flags = '%s'", e.Flags)
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalFormatFlagsException) JavaClassName() string {
 	return "java.util.IllegalFormatFlagsException"
 }
diff --git a/java_exception/illegal_format_precision_exception.go b/java_exception/illegal_format_precision_exception.go
index 9f23761..71ab7b8 100644
--- a/java_exception/illegal_format_precision_exception.go
+++ b/java_exception/illegal_format_precision_exception.go
@@ -19,6 +19,7 @@
 
 import "strconv"
 
+// IllegalFormatPrecisionException represents an exception of the same name in java
 type IllegalFormatPrecisionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -28,14 +29,17 @@
 	P                    int32
 }
 
+// NewIllegalFormatPrecisionException is the constructor
 func NewIllegalFormatPrecisionException(p int32) *IllegalFormatPrecisionException {
 	return &IllegalFormatPrecisionException{P: p, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalFormatPrecisionException) Error() string {
 	return strconv.Itoa(int(e.P))
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalFormatPrecisionException) JavaClassName() string {
 	return "java.util.IllegalFormatPrecisionException"
 }
diff --git a/java_exception/illegal_format_width_exception.go b/java_exception/illegal_format_width_exception.go
index e0ffd7e..fca27cc 100644
--- a/java_exception/illegal_format_width_exception.go
+++ b/java_exception/illegal_format_width_exception.go
@@ -19,6 +19,7 @@
 
 import "strconv"
 
+// IllegalFormatWidthException represents an exception of the same name in java
 type IllegalFormatWidthException struct {
 	SerialVersionUID     int64
 	W                    int
@@ -28,13 +29,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e IllegalFormatWidthException) Error() string {
 	return strconv.Itoa(e.W)
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalFormatWidthException) JavaClassName() string {
 	return "java.util.IllegalFormatWidthException"
 }
+
+// NewIllegalFormatWidthException is the constructor
 func NewIllegalFormatWidthException(w int) *IllegalFormatWidthException {
 	return &IllegalFormatWidthException{W: w}
 }
diff --git a/java_exception/illegal_monitor_state_exception.go b/java_exception/illegal_monitor_state_exception.go
index 74d3f6d..0b1e314 100644
--- a/java_exception/illegal_monitor_state_exception.go
+++ b/java_exception/illegal_monitor_state_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllegalMonitorStateException represents an exception of the same name in java
 type IllegalMonitorStateException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIllegalMonitorStateException is the constructor
 func NewIllegalMonitorStateException(detailMessage string) *IllegalMonitorStateException {
 	return &IllegalMonitorStateException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalMonitorStateException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalMonitorStateException) JavaClassName() string {
 	return "java.lang.IllegalMonitorStateException"
 }
diff --git a/java_exception/illegal_state_exception.go b/java_exception/illegal_state_exception.go
index e3a9150..0e48485 100644
--- a/java_exception/illegal_state_exception.go
+++ b/java_exception/illegal_state_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllegalStateException represents an exception of the same name in java
 type IllegalStateException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIllegalStateException is the constructor
 func NewIllegalStateException(detailMessage string) *IllegalStateException {
 	return &IllegalStateException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalStateException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalStateException) JavaClassName() string {
 	return "java.lang.IllegalStateException"
 }
diff --git a/java_exception/illegal_thread_state_exception.go b/java_exception/illegal_thread_state_exception.go
index 058a404..6f3db69 100644
--- a/java_exception/illegal_thread_state_exception.go
+++ b/java_exception/illegal_thread_state_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllegalThreadStateException represents an exception of the same name in java
 type IllegalThreadStateException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIllegalThreadStateException is the constructor
 func NewIllegalThreadStateException(detailMessage string) *IllegalThreadStateException {
 	return &IllegalThreadStateException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IllegalThreadStateException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllegalThreadStateException) JavaClassName() string {
 	return "java.lang.IllegalThreadStateException"
 }
diff --git a/java_exception/illformed_locale_exception.go b/java_exception/illformed_locale_exception.go
index 4504c7a..142666d 100644
--- a/java_exception/illformed_locale_exception.go
+++ b/java_exception/illformed_locale_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IllformedLocaleException represents an exception of the same name in java
 type IllformedLocaleException struct {
 	_errIdx              int
 	SerialVersionUID     int64
@@ -26,13 +27,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e IllformedLocaleException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IllformedLocaleException) JavaClassName() string {
 	return "java.util.IllformedLocaleException"
 }
+
+// NewIllformedLocaleException is the constructor
 func NewIllformedLocaleException(detailMessage string) *IllformedLocaleException {
 	return &IllformedLocaleException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/incomplete_annotation_exception.go b/java_exception/incomplete_annotation_exception.go
index 360e3b1..f11a45e 100644
--- a/java_exception/incomplete_annotation_exception.go
+++ b/java_exception/incomplete_annotation_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IncompleteAnnotationException represents an exception of the same name in java
 type IncompleteAnnotationException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -27,14 +28,17 @@
 	Cause                Throwabler
 }
 
+// NewIncompleteAnnotationException is the constructor
 func NewIncompleteAnnotationException(detailMessage string) *IncompleteAnnotationException {
 	return &IncompleteAnnotationException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IncompleteAnnotationException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IncompleteAnnotationException) JavaClassName() string {
 	return "java.lang.annotation.IncompleteAnnotationException"
 }
diff --git a/java_exception/index_out_of_bounds_exception.go b/java_exception/index_out_of_bounds_exception.go
index 7a122cc..7481fef 100644
--- a/java_exception/index_out_of_bounds_exception.go
+++ b/java_exception/index_out_of_bounds_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IndexOutOfBoundsException represents an exception of the same name in java
 type IndexOutOfBoundsException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIndexOutOfBoundsException is the constructor
 func NewIndexOutOfBoundsException(detailMessage string) *IndexOutOfBoundsException {
 	return &IndexOutOfBoundsException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IndexOutOfBoundsException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IndexOutOfBoundsException) JavaClassName() string {
 	return "java.lang.IndexOutOfBoundsException"
 }
diff --git a/java_exception/input_mismatch_exception.go b/java_exception/input_mismatch_exception.go
index 3bca862..266b648 100644
--- a/java_exception/input_mismatch_exception.go
+++ b/java_exception/input_mismatch_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// InputMismatchException represents an exception of the same name in java
 type InputMismatchException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewInputMismatchException is the constructor
 func NewInputMismatchException(detailMessage string) *InputMismatchException {
 	return &InputMismatchException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InputMismatchException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InputMismatchException) JavaClassName() string {
 	return "java.util.InputMismatchException"
 }
diff --git a/java_exception/instantiation_exception.go b/java_exception/instantiation_exception.go
index 83203cb..8df5cb8 100644
--- a/java_exception/instantiation_exception.go
+++ b/java_exception/instantiation_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// InstantiationException represents an exception of the same name in java
 type InstantiationException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewInstantiationException is the constructor
 func NewInstantiationException(detailMessage string) *InstantiationException {
 	return &InstantiationException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InstantiationException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InstantiationException) JavaClassName() string {
 	return "java.lang.InstantiationException"
 }
diff --git a/java_exception/interrupted_exception.go b/java_exception/interrupted_exception.go
index 40884aa..a8f638b 100644
--- a/java_exception/interrupted_exception.go
+++ b/java_exception/interrupted_exception.go
@@ -20,7 +20,7 @@
 ////////////////////////////
 // InterruptedException
 ////////////////////////////
-
+// InterruptedException represents an exception of the same name in java
 type InterruptedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -29,14 +29,17 @@
 	Cause                Throwabler
 }
 
+// NewInterruptedException is the constructor
 func NewInterruptedException(detailMessage string) *InterruptedException {
 	return &InterruptedException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InterruptedException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InterruptedException) JavaClassName() string {
 	return "java.lang.InterruptedException"
 }
diff --git a/java_exception/interrupted_io_exception.go b/java_exception/interrupted_io_exception.go
index ca6074d..c69d1b8 100644
--- a/java_exception/interrupted_io_exception.go
+++ b/java_exception/interrupted_io_exception.go
@@ -20,7 +20,7 @@
 ////////////////////////////
 // InterruptedIOException
 ////////////////////////////
-
+// InterruptedIOException represents an exception of the same name in java
 type InterruptedIOException struct {
 	SerialVersionUID     int64
 	BytesTransferred     int32
@@ -30,14 +30,17 @@
 	Cause                Throwabler
 }
 
+// NewInterruptedIOException is the constructor
 func NewInterruptedIOException(detailMessage string) *InterruptedIOException {
 	return &InterruptedIOException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InterruptedIOException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InterruptedIOException) JavaClassName() string {
 	return "java.io.InterruptedIOException"
 }
diff --git a/java_exception/invalid_class_exception.go b/java_exception/invalid_class_exception.go
index e0fcd44..ebc2579 100644
--- a/java_exception/invalid_class_exception.go
+++ b/java_exception/invalid_class_exception.go
@@ -19,6 +19,7 @@
 
 import "fmt"
 
+// InvalidClassException represents an exception of the same name in java
 type InvalidClassException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -28,11 +29,13 @@
 	Cause                Throwabler
 }
 
+// NewInvalidClassException is the constructor
 func NewInvalidClassException(classname string, detailMessage string) *InvalidClassException {
 	return &InvalidClassException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{},
 		Classname: classname}
 }
 
+// Error output error message
 func (e InvalidClassException) Error() string {
 	if len(e.Classname) <= 0 {
 		return e.DetailMessage
@@ -41,6 +44,7 @@
 
 }
 
+// JavaClassName  java fully qualified path
 func (InvalidClassException) JavaClassName() string {
 	return "java.io.InvalidClassException"
 }
diff --git a/java_exception/invalid_object_exception.go b/java_exception/invalid_object_exception.go
index 5cffae9..5080553 100644
--- a/java_exception/invalid_object_exception.go
+++ b/java_exception/invalid_object_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// InvalidObjectException represents an exception of the same name in java
 type InvalidObjectException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewInvalidObjectException is the constructor
 func NewInvalidObjectException(detailMessage string) *InvalidObjectException {
 	return &InvalidObjectException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InvalidObjectException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InvalidObjectException) JavaClassName() string {
 	return "java.io.InvalidObjectException"
 }
diff --git a/java_exception/invalid_preferences_format_exception.go b/java_exception/invalid_preferences_format_exception.go
index 1aa2d3d..a264ccc 100644
--- a/java_exception/invalid_preferences_format_exception.go
+++ b/java_exception/invalid_preferences_format_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// InvalidPreferencesFormatException represents an exception of the same name in java
 type InvalidPreferencesFormatException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewInvalidPreferencesFormatException is the constructor
 func NewInvalidPreferencesFormatException(detailMessage string) *InvalidPreferencesFormatException {
 	return &InvalidPreferencesFormatException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InvalidPreferencesFormatException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InvalidPreferencesFormatException) JavaClassName() string {
 	return "java.util.prefs.InvalidPreferencesFormatException"
 }
diff --git a/java_exception/invalid_properties_format_exception.go b/java_exception/invalid_properties_format_exception.go
index 78de724..ab0f4e7 100644
--- a/java_exception/invalid_properties_format_exception.go
+++ b/java_exception/invalid_properties_format_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// InvalidPropertiesFormatException represents an exception of the same name in java
 type InvalidPropertiesFormatException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewInvalidPropertiesFormatException is the constructor
 func NewInvalidPropertiesFormatException(detailMessage string) *InvalidPropertiesFormatException {
 	return &InvalidPropertiesFormatException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e InvalidPropertiesFormatException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InvalidPropertiesFormatException) JavaClassName() string {
 	return "java.util.InvalidPropertiesFormatException"
 }
diff --git a/java_exception/invocation_target_exception.go b/java_exception/invocation_target_exception.go
index 04fbacf..08f54ba 100644
--- a/java_exception/invocation_target_exception.go
+++ b/java_exception/invocation_target_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// InvocationTargetException represents an exception of the same name in java
 type InvocationTargetException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -26,14 +27,17 @@
 	Target               Throwabler
 }
 
+// NewInvocationTargetException is the constructor
 func NewInvocationTargetException(target Throwabler, detailMessage string) *InvocationTargetException {
 	return &InvocationTargetException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}, Target: target}
 }
 
+// Error output error message
 func (e InvocationTargetException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (InvocationTargetException) JavaClassName() string {
 	return "java.lang.reflect.InvocationTargetException"
 }
diff --git a/java_exception/io_exception.go b/java_exception/io_exception.go
index 7d8e226..10a81df 100644
--- a/java_exception/io_exception.go
+++ b/java_exception/io_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// IOException represents an exception of the same name in java
 type IOException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewIOException is the constructor
 func NewIOException(detailMessage string) *IOException {
 	return &IOException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e IOException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (IOException) JavaClassName() string {
 	return "java.io.IOException"
 }
diff --git a/java_exception/jar_exception.go b/java_exception/jar_exception.go
index cced2be..f0029a5 100644
--- a/java_exception/jar_exception.go
+++ b/java_exception/jar_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// JarException represents an exception of the same name in java
 type JarException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewJarException is the constructor
 func NewJarException(detailMessage string) *JarException {
 	return &JarException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e JarException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (JarException) JavaClassName() string {
 	return "java.util.jar.JarException"
 }
diff --git a/java_exception/lambda_conversion_exception.go b/java_exception/lambda_conversion_exception.go
index edf0634..4e0f504 100644
--- a/java_exception/lambda_conversion_exception.go
+++ b/java_exception/lambda_conversion_exception.go
@@ -20,7 +20,7 @@
 ////////////////////////////
 // LambdaConversionException
 ////////////////////////////
-
+// LambdaConversionException represents an exception of the same name in java
 type LambdaConversionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -29,14 +29,17 @@
 	Cause                Throwabler
 }
 
+// NewLambdaConversionException is the constructor
 func NewLambdaConversionException(detailMessage string) *LambdaConversionException {
 	return &LambdaConversionException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e LambdaConversionException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (LambdaConversionException) JavaClassName() string {
 	return "java.lang.invoke.LambdaConversionException"
 }
diff --git a/java_exception/malformed_parameterized_type_exception.go b/java_exception/malformed_parameterized_type_exception.go
index 3074c8f..0135f22 100644
--- a/java_exception/malformed_parameterized_type_exception.go
+++ b/java_exception/malformed_parameterized_type_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// MalformedParameterizedTypeException represents an exception of the same name in java
 type MalformedParameterizedTypeException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e MalformedParameterizedTypeException) Error() string {
 	return "MalformedParameterizedType"
 }
 
+// JavaClassName  java fully qualified path
 func (MalformedParameterizedTypeException) JavaClassName() string {
 	return "java.lang.reflect.MalformedParameterizedTypeException"
 }
+
+// NewMalformedParameterizedTypeException is the constructor
 func NewMalformedParameterizedTypeException(detailMessage string) *MalformedParameterizedTypeException {
 	return &MalformedParameterizedTypeException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/malformed_parameters_exception.go b/java_exception/malformed_parameters_exception.go
index 26d673f..49e3118 100644
--- a/java_exception/malformed_parameters_exception.go
+++ b/java_exception/malformed_parameters_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// MalformedParametersException represents an exception of the same name in java
 type MalformedParametersException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e MalformedParametersException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (MalformedParametersException) JavaClassName() string {
 	return "java.lang.reflect.MalformedParametersException"
 }
+
+// NewMalformedParametersException is the constructor
 func NewMalformedParametersException(detailMessage string) *MalformedParametersException {
 	return &MalformedParametersException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/missing_format_argument_exception.go b/java_exception/missing_format_argument_exception.go
index 5018634..281821e 100644
--- a/java_exception/missing_format_argument_exception.go
+++ b/java_exception/missing_format_argument_exception.go
@@ -19,6 +19,7 @@
 
 import "fmt"
 
+// MissingFormatArgumentException represents an exception of the same name in java
 type MissingFormatArgumentException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -28,14 +29,17 @@
 	S                    string
 }
 
+// NewMissingFormatArgumentException is the constructor
 func NewMissingFormatArgumentException(s string) *MissingFormatArgumentException {
 	return &MissingFormatArgumentException{S: s, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e MissingFormatArgumentException) Error() string {
 	return fmt.Sprintf("Format specifier '%s'", e.S)
 }
 
+// JavaClassName  java fully qualified path
 func (MissingFormatArgumentException) JavaClassName() string {
 	return "java.util.MissingFormatArgumentException"
 }
diff --git a/java_exception/missing_format_width_exception.go b/java_exception/missing_format_width_exception.go
index 47a0efe..b22e8ad 100644
--- a/java_exception/missing_format_width_exception.go
+++ b/java_exception/missing_format_width_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// MissingFormatWidthException represents an exception of the same name in java
 type MissingFormatWidthException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -26,14 +27,17 @@
 	S                    string
 }
 
+// NewMissingFormatWidthException is the constructor
 func NewMissingFormatWidthException(s string) *MissingFormatWidthException {
 	return &MissingFormatWidthException{S: s, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e MissingFormatWidthException) Error() string {
 	return e.S
 }
 
+// JavaClassName  java fully qualified path
 func (MissingFormatWidthException) JavaClassName() string {
 	return "java.util.MissingFormatWidthException"
 }
diff --git a/java_exception/missing_resource_exception.go b/java_exception/missing_resource_exception.go
index 658982f..0d0bab7 100644
--- a/java_exception/missing_resource_exception.go
+++ b/java_exception/missing_resource_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// MissingResourceException represents an exception of the same name in java
 type MissingResourceException struct {
 	ClassName            string
 	Key                  string
@@ -27,13 +28,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e MissingResourceException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (MissingResourceException) JavaClassName() string {
 	return "java.util.MissingResourceException"
 }
+
+// NewMissingResourceException is the constructor
 func NewMissingResourceException(detailMessage, classname, key string) *MissingResourceException {
 	return &MissingResourceException{DetailMessage: detailMessage, ClassName: classname, Key: key}
 }
diff --git a/java_exception/negative_array_size_exception.go b/java_exception/negative_array_size_exception.go
index 7abb217..a8aeb84 100644
--- a/java_exception/negative_array_size_exception.go
+++ b/java_exception/negative_array_size_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NegativeArraySizeException represents an exception of the same name in java
 type NegativeArraySizeException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNegativeArraySizeException is the constructor
 func NewNegativeArraySizeException(detailMessage string) *NegativeArraySizeException {
 	return &NegativeArraySizeException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e NegativeArraySizeException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NegativeArraySizeException) JavaClassName() string {
 	return "java.lang.NegativeArraySizeException"
 }
diff --git a/java_exception/no_such_element_exception.go b/java_exception/no_such_element_exception.go
index 45521be..3f8c8a7 100644
--- a/java_exception/no_such_element_exception.go
+++ b/java_exception/no_such_element_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NoSuchElementException represents an exception of the same name in java
 type NoSuchElementException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e NoSuchElementException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NoSuchElementException) JavaClassName() string {
 	return "java.util.NoSuchElementException"
 }
+
+// NewNoSuchElementException is the constructor
 func NewNoSuchElementException(detailMessage string) *NoSuchElementException {
 	return &NoSuchElementException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/no_such_field_exception.go b/java_exception/no_such_field_exception.go
index aa6fb54..dddcbf2 100644
--- a/java_exception/no_such_field_exception.go
+++ b/java_exception/no_such_field_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NoSuchFieldException represents an exception of the same name in java
 type NoSuchFieldException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNoSuchFieldException is the constructor
 func NewNoSuchFieldException(detailMessage string) *NoSuchFieldException {
 	return &NoSuchFieldException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e NoSuchFieldException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NoSuchFieldException) JavaClassName() string {
 	return "java.lang.NoSuchFieldException"
 }
diff --git a/java_exception/no_such_method_exception.go b/java_exception/no_such_method_exception.go
index 6390830..05587f3 100644
--- a/java_exception/no_such_method_exception.go
+++ b/java_exception/no_such_method_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NoSuchMethodException represents an exception of the same name in java
 type NoSuchMethodException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNoSuchMethodException is the constructor
 func NewNoSuchMethodException(detailMessage string) *NoSuchMethodException {
 	return &NoSuchMethodException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e NoSuchMethodException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NoSuchMethodException) JavaClassName() string {
 	return "java.lang.NoSuchMethodException"
 }
diff --git a/java_exception/not_active_exception.go b/java_exception/not_active_exception.go
index 2a37251..5d1d34a 100644
--- a/java_exception/not_active_exception.go
+++ b/java_exception/not_active_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NotActiveException represents an exception of the same name in java
 type NotActiveException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNotActiveException is the constructor
 func NewNotActiveException(detailMessage string) *NotActiveException {
 	return &NotActiveException{DetailMessage: detailMessage}
 }
 
+// Error output error message
 func (e NotActiveException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NotActiveException) JavaClassName() string {
 	return "java.io.NotActiveException"
 }
diff --git a/java_exception/not_serializable_exception.go b/java_exception/not_serializable_exception.go
index 732ee3a..3782df3 100644
--- a/java_exception/not_serializable_exception.go
+++ b/java_exception/not_serializable_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NotSerializableException represents an exception of the same name in java
 type NotSerializableException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNotSerializableException is the constructor
 func NewNotSerializableException(detailMessage string) *NotActiveException {
 	return &NotActiveException{DetailMessage: detailMessage}
 }
 
+// Error output error message
 func (e NotSerializableException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NotSerializableException) JavaClassName() string {
 	return "java.io.NotSerializableException"
 }
diff --git a/java_exception/null_pointer_exception.go b/java_exception/null_pointer_exception.go
index 5fed45b..f3cb0a5 100644
--- a/java_exception/null_pointer_exception.go
+++ b/java_exception/null_pointer_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NullPointerException represents an exception of the same name in java
 type NullPointerException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNullPointerException is the constructor
 func NewNullPointerException(detailMessage string) *NullPointerException {
 	return &NullPointerException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e NullPointerException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (e NullPointerException) JavaClassName() string {
 	return "java.lang.NullPointerException"
 }
diff --git a/java_exception/number_format_exception.go b/java_exception/number_format_exception.go
index 461ecbe..2158bbc 100644
--- a/java_exception/number_format_exception.go
+++ b/java_exception/number_format_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// NumberFormatException represents an exception of the same name in java
 type NumberFormatException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewNumberFormatException is the constructor
 func NewNumberFormatException(detailMessage string) *NumberFormatException {
 	return &NumberFormatException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e NumberFormatException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (NumberFormatException) JavaClassName() string {
 	return "java.lang.NumberFormatException"
 }
diff --git a/java_exception/object_stream_exception.go b/java_exception/object_stream_exception.go
index 5038f27..2e005d6 100644
--- a/java_exception/object_stream_exception.go
+++ b/java_exception/object_stream_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ObjectStreamException represents an exception of the same name in java
 type ObjectStreamException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewObjectStreamException is the constructor
 func NewObjectStreamException(detailMessage string) *ObjectStreamException {
 	return &ObjectStreamException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ObjectStreamException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ObjectStreamException) JavaClassName() string {
 	return "java.io.ObjectStreamException"
 }
diff --git a/java_exception/optional_data_exception.go b/java_exception/optional_data_exception.go
index 693600d..ab2dcdc 100644
--- a/java_exception/optional_data_exception.go
+++ b/java_exception/optional_data_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// OptionalDataException represents an exception of the same name in java
 type OptionalDataException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -27,14 +28,17 @@
 	Length               int
 }
 
+// NewOptionalDataException is the constructor
 func NewOptionalDataException(eof bool, length int) *OptionalDataException {
 	return &OptionalDataException{Eof: eof, Length: length}
 }
 
+// Error output error message
 func (e OptionalDataException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (OptionalDataException) JavaClassName() string {
 	return "java.io.OptionalDataException"
 }
diff --git a/java_exception/reflective_operation_exception.go b/java_exception/reflective_operation_exception.go
index e871cfd..70b1632 100644
--- a/java_exception/reflective_operation_exception.go
+++ b/java_exception/reflective_operation_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ReflectiveOperationException represents an exception of the same name in java
 type ReflectiveOperationException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewReflectiveOperationException is the constructor
 func NewReflectiveOperationException(detailMessage string) *ReflectiveOperationException {
 	return &ReflectiveOperationException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ReflectiveOperationException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ReflectiveOperationException) JavaClassName() string {
 	return "java.lang.ReflectiveOperationException"
 }
diff --git a/java_exception/rejected_execution_exception.go b/java_exception/rejected_execution_exception.go
index 5560574..b03b385 100644
--- a/java_exception/rejected_execution_exception.go
+++ b/java_exception/rejected_execution_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// RejectedExecutionException represents an exception of the same name in java
 type RejectedExecutionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e RejectedExecutionException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (RejectedExecutionException) JavaClassName() string {
 	return "java.util.concurrent.RejectedExecutionException"
 }
+
+// NewRejectedExecutionException is the constructor
 func NewRejectedExecutionException(detailMessage string) *RejectedExecutionException {
 	return &RejectedExecutionException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/runtime_exception.go b/java_exception/runtime_exception.go
index 89310c1..993e81b 100644
--- a/java_exception/runtime_exception.go
+++ b/java_exception/runtime_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// RuntimeException represents an exception of the same name in java
 type RuntimeException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewRuntimeException is the constructor
 func NewRuntimeException(detailMessage string) *RuntimeException {
 	return &RuntimeException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e RuntimeException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (RuntimeException) JavaClassName() string {
 	return "java.lang.RuntimeException"
 }
diff --git a/java_exception/security_exception.go b/java_exception/security_exception.go
index 59eea12..efa3bb2 100644
--- a/java_exception/security_exception.go
+++ b/java_exception/security_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// SecurityException represents an exception of the same name in java
 type SecurityException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewSecurityException is the constructor
 func NewSecurityException(detailMessage string) *SecurityException {
 	return &SecurityException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e SecurityException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (SecurityException) JavaClassName() string {
 	return "java.lang.SecurityException"
 }
diff --git a/java_exception/stream_corrupted_exception.go b/java_exception/stream_corrupted_exception.go
index acbc596..5df3065 100644
--- a/java_exception/stream_corrupted_exception.go
+++ b/java_exception/stream_corrupted_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// StreamCorruptedException represents an exception of the same name in java
 type StreamCorruptedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewStreamCorruptedException is the constructor
 func NewStreamCorruptedException(detailMessage string) *StreamCorruptedException {
 	return &StreamCorruptedException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e StreamCorruptedException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (StreamCorruptedException) JavaClassName() string {
 	return "java.io.StreamCorruptedException"
 }
diff --git a/java_exception/string_index_out_of_bounds_exception.go b/java_exception/string_index_out_of_bounds_exception.go
index 3a08c6f..fcada97 100644
--- a/java_exception/string_index_out_of_bounds_exception.go
+++ b/java_exception/string_index_out_of_bounds_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// StringIndexOutOfBoundsException represents an exception of the same name in java
 type StringIndexOutOfBoundsException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewStringIndexOutOfBoundsException is the constructor
 func NewStringIndexOutOfBoundsException(detailMessage string) *StringIndexOutOfBoundsException {
 	return &StringIndexOutOfBoundsException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e StringIndexOutOfBoundsException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (StringIndexOutOfBoundsException) JavaClassName() string {
 	return "java.lang.StringIndexOutOfBoundsException"
 }
diff --git a/java_exception/sync_failed_exception.go b/java_exception/sync_failed_exception.go
index 9f50528..20f9b6b 100644
--- a/java_exception/sync_failed_exception.go
+++ b/java_exception/sync_failed_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// SyncFailedException represents an exception of the same name in java
 type SyncFailedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewSyncFailedException is the constructor
 func NewSyncFailedException(detailMessage string) *SyncFailedException {
 	return &SyncFailedException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e SyncFailedException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (SyncFailedException) JavaClassName() string {
 	return "java.io.SyncFailedException"
 }
diff --git a/java_exception/timeout_exception.go b/java_exception/timeout_exception.go
index e7226b1..3692e5d 100644
--- a/java_exception/timeout_exception.go
+++ b/java_exception/timeout_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// TimeoutException represents an exception of the same name in java
 type TimeoutException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewTimeoutException is the constructor
 func NewTimeoutException(detailMessage string) *TimeoutException {
 	return &TimeoutException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e TimeoutException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (TimeoutException) JavaClassName() string {
 	return "java.util.concurrent.TimeoutException"
 }
diff --git a/java_exception/too_many_listeners_exception.go b/java_exception/too_many_listeners_exception.go
index 2a11146..93d2614 100644
--- a/java_exception/too_many_listeners_exception.go
+++ b/java_exception/too_many_listeners_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// TooManyListenersException represents an exception of the same name in java
 type TooManyListenersException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewTooManyListenersException is the constructor
 func NewTooManyListenersException(detailMessage string) *TooManyListenersException {
 	return &TooManyListenersException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e TooManyListenersException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (TooManyListenersException) JavaClassName() string {
 	return "java.util.TooManyListenersException"
 }
diff --git a/java_exception/type_not_present_exception.go b/java_exception/type_not_present_exception.go
index 10a6764..09920ee 100644
--- a/java_exception/type_not_present_exception.go
+++ b/java_exception/type_not_present_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// TypeNotPresentException represents an exception of the same name in java
 type TypeNotPresentException struct {
 	TypeName             string
 	SerialVersionUID     int64
@@ -26,13 +27,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e TypeNotPresentException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (TypeNotPresentException) JavaClassName() string {
 	return "java.lang.TypeNotPresentException"
 }
+
+// NewTypeNotPresentException is the constructor
 func NewTypeNotPresentException(typeName string, detailMessage string) *TypeNotPresentException {
 	return &TypeNotPresentException{TypeName: typeName, DetailMessage: detailMessage}
 }
diff --git a/java_exception/unchecked_IO_exception.go b/java_exception/unchecked_IO_exception.go
index f2c9e89..86e09cf 100644
--- a/java_exception/unchecked_IO_exception.go
+++ b/java_exception/unchecked_IO_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// UncheckedIOException represents an exception of the same name in java
 type UncheckedIOException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,6 +26,7 @@
 	Cause                Throwabler
 }
 
+// NewUncheckedIOException is the constructor
 func NewUncheckedIOException(detailMessage string, cause Throwabler) (result *UncheckedIOException, err error) {
 	if cause == nil {
 		return nil, NullPointerException{}
@@ -33,10 +35,12 @@
 		nil
 }
 
+// Error output error message
 func (e UncheckedIOException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (UncheckedIOException) JavaClassName() string {
 	return "java.io.UncheckedIOException"
 }
diff --git a/java_exception/undeclared_throwable_exception.go b/java_exception/undeclared_throwable_exception.go
index d2843d6..64ba396 100644
--- a/java_exception/undeclared_throwable_exception.go
+++ b/java_exception/undeclared_throwable_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// UndeclaredThrowableException represents an exception of the same name in java
 type UndeclaredThrowableException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -26,14 +27,17 @@
 	UndeclaredThrowable  Throwabler
 }
 
+// Error output error message
 func (e UndeclaredThrowableException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (UndeclaredThrowableException) JavaClassName() string {
 	return "java.lang.reflect.UndeclaredThrowableException"
 }
 
+// NewUndeclaredThrowableException is the constructor
 func NewUndeclaredThrowableException(detailMessage string) *UndeclaredThrowableException {
 	return &UndeclaredThrowableException{DetailMessage: detailMessage, UndeclaredThrowable: Throwable{}}
 }
diff --git a/java_exception/unknown_format_conversion_exception.go b/java_exception/unknown_format_conversion_exception.go
index 23f5522..986074a 100644
--- a/java_exception/unknown_format_conversion_exception.go
+++ b/java_exception/unknown_format_conversion_exception.go
@@ -19,6 +19,7 @@
 
 import "fmt"
 
+// UnknownFormatConversionException represents an exception of the same name in java
 type UnknownFormatConversionException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -28,14 +29,17 @@
 	S                    string
 }
 
+// NewUnknownFormatConversionException is the constructor
 func NewUnknownFormatConversionException(s string) *UnknownFormatConversionException {
 	return &UnknownFormatConversionException{S: s, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e UnknownFormatConversionException) Error() string {
 	return fmt.Sprintf("Conversion = '%s'", e.S)
 }
 
+// JavaClassName  java fully qualified path
 func (UnknownFormatConversionException) JavaClassName() string {
 	return "java.util.UnknownFormatConversionException"
 }
diff --git a/java_exception/unknown_format_flags_exception.go b/java_exception/unknown_format_flags_exception.go
index 85e6198..eb07864 100644
--- a/java_exception/unknown_format_flags_exception.go
+++ b/java_exception/unknown_format_flags_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// UnknownFormatFlagsException represents an exception of the same name in java
 type UnknownFormatFlagsException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -26,14 +27,17 @@
 	Flags                string
 }
 
+// NewUnknownFormatFlagsException is the constructor
 func NewUnknownFormatFlagsException(flags string) *UnknownFormatFlagsException {
 	return &UnknownFormatFlagsException{Flags: flags, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e UnknownFormatFlagsException) Error() string {
 	return "Flags = " + e.Flags
 }
 
+// JavaClassName  java fully qualified path
 func (UnknownFormatFlagsException) JavaClassName() string {
 	return "java.util.UnknownFormatFlagsException"
 }
diff --git a/java_exception/unmodifiable_class_exception.go b/java_exception/unmodifiable_class_exception.go
index 81aaa56..a7c75d5 100644
--- a/java_exception/unmodifiable_class_exception.go
+++ b/java_exception/unmodifiable_class_exception.go
@@ -20,7 +20,7 @@
 ////////////////////////////
 // UnmodifiableClassException
 ////////////////////////////
-
+// UnmodifiableClassException represents an exception of the same name in java
 type UnmodifiableClassException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -29,14 +29,17 @@
 	Cause                Throwabler
 }
 
+// NewUnmodifiableClassException is the constructor
 func NewUnmodifiableClassException(detailMessage string) *UnmodifiableClassException {
 	return &UnmodifiableClassException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e UnmodifiableClassException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (UnmodifiableClassException) JavaClassName() string {
 	return "java.lang.instrument.UnmodifiableClassException"
 }
diff --git a/java_exception/unsupported_operation_exception.go b/java_exception/unsupported_operation_exception.go
index a3c7bb4..01f3e06 100644
--- a/java_exception/unsupported_operation_exception.go
+++ b/java_exception/unsupported_operation_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// UnsupportedOperationException represents an exception of the same name in java
 type UnsupportedOperationException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewUnsupportedOperationException is the constructor
 func NewUnsupportedOperationException(detailMessage string) *UnsupportedOperationException {
 	return &UnsupportedOperationException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e UnsupportedOperationException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (UnsupportedOperationException) JavaClassName() string {
 	return "java.lang.UnsupportedOperationException"
 }
diff --git a/java_exception/unsupported_temporal_type_exception.go b/java_exception/unsupported_temporal_type_exception.go
index 278cccf..9ebc180 100644
--- a/java_exception/unsupported_temporal_type_exception.go
+++ b/java_exception/unsupported_temporal_type_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// UnsupportedTemporalTypeException represents an exception of the same name in java
 type UnsupportedTemporalTypeException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewUnsupportedTemporalTypeException is the constructor
 func NewUnsupportedTemporalTypeException(detailMessage string) *UnsupportedTemporalTypeException {
 	return &UnsupportedTemporalTypeException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e UnsupportedTemporalTypeException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (UnsupportedTemporalTypeException) JavaClassName() string {
 	return "java.time.temporal.UnsupportedTemporalTypeException"
 }
diff --git a/java_exception/utf_data_format_exception.go b/java_exception/utf_data_format_exception.go
index dc1753e..fe1c8e9 100644
--- a/java_exception/utf_data_format_exception.go
+++ b/java_exception/utf_data_format_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+//UTFDataFormatException represents an exception of the same name in java
 type UTFDataFormatException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewUTFDataFormatException is the constructor
 func NewUTFDataFormatException(detailMessage string) *UTFDataFormatException {
 	return &UTFDataFormatException{DetailMessage: detailMessage}
 }
 
+//Error output error message
 func (e UTFDataFormatException) Error() string {
 	return e.DetailMessage
 }
 
+//JavaClassName  java fully qualified path
 func (UTFDataFormatException) JavaClassName() string {
 	return "java.io.UTFDataFormatException"
 }
diff --git a/java_exception/write_aborted_exception.go b/java_exception/write_aborted_exception.go
index e658fa7..cb03a1f 100644
--- a/java_exception/write_aborted_exception.go
+++ b/java_exception/write_aborted_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// WriteAbortedException represents an exception of the same name in java
 type WriteAbortedException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -26,15 +27,18 @@
 	Cause                Throwabler
 }
 
+// NewWriteAbortedException is the constructor
 func NewWriteAbortedException(detailMessage string, detail Throwabler) *WriteAbortedException {
 	return &WriteAbortedException{DetailMessage: detailMessage, StackTrace: nil,
 		Detail: detail}
 }
 
+// Error output error message
 func (e WriteAbortedException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (WriteAbortedException) JavaClassName() string {
 	return "java.io.WriteAbortedException"
 }
diff --git a/java_exception/wrong_method_type_exception.go b/java_exception/wrong_method_type_exception.go
index e2ab745..7e47062 100644
--- a/java_exception/wrong_method_type_exception.go
+++ b/java_exception/wrong_method_type_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// WrongMethodTypeException represents an exception of the same name in java
 type WrongMethodTypeException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,13 +26,17 @@
 	Cause                Throwabler
 }
 
+// Error output error message
 func (e WrongMethodTypeException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (WrongMethodTypeException) JavaClassName() string {
 	return "java.lang.invoke.WrongMethodTypeException"
 }
+
+// NewWrongMethodTypeException is the constructor
 func NewWrongMethodTypeException(detailMessage string) *WrongMethodTypeException {
 	return &WrongMethodTypeException{DetailMessage: detailMessage}
 }
diff --git a/java_exception/zip_exception.go b/java_exception/zip_exception.go
index b7d4b31..e67aa1c 100644
--- a/java_exception/zip_exception.go
+++ b/java_exception/zip_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ZipException represents an exception of the same name in java
 type ZipException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewZipException is the constructor
 func NewZipException(detailMessage string) *ZipException {
 	return &ZipException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ZipException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ZipException) JavaClassName() string {
 	return "java.util.zip.ZipException"
 }
diff --git a/java_exception/zone_rules_exception.go b/java_exception/zone_rules_exception.go
index 123b459..3b16471 100644
--- a/java_exception/zone_rules_exception.go
+++ b/java_exception/zone_rules_exception.go
@@ -17,6 +17,7 @@
 
 package java_exception
 
+// ZoneRulesException represents an exception of the same name in java
 type ZoneRulesException struct {
 	SerialVersionUID     int64
 	DetailMessage        string
@@ -25,14 +26,17 @@
 	Cause                Throwabler
 }
 
+// NewZoneRulesException is the constructor
 func NewZoneRulesException(detailMessage string) *ZoneRulesException {
 	return &ZoneRulesException{DetailMessage: detailMessage, StackTrace: []StackTraceElement{}}
 }
 
+// Error output error message
 func (e ZoneRulesException) Error() string {
 	return e.DetailMessage
 }
 
+// JavaClassName  java fully qualified path
 func (ZoneRulesException) JavaClassName() string {
 	return "java.time.zone.ZoneRulesException"
 }
diff --git a/list_test.go b/list_test.go
index 12e4c75..7fe9668 100644
--- a/list_test.go
+++ b/list_test.go
@@ -188,6 +188,7 @@
 	List1 [][]*A1
 }
 
+//JavaClassName  java fully qualified path
 func (*TypedListTest) JavaClassName() string {
 	return "test.TypedListTest"
 }
diff --git a/object_test.go b/object_test.go
index 81238e1..2484d07 100644
--- a/object_test.go
+++ b/object_test.go
@@ -27,6 +27,7 @@
 	Name string
 }
 
+// JavaClassName  java fully qualified path
 func (Department) JavaClassName() string {
 	return "com.bdt.info.Department"
 }
@@ -43,6 +44,7 @@
 	Dpt               Department
 }
 
+// JavaClassName  java fully qualified path
 func (WorkerInfo) JavaClassName() string {
 	return "com.bdt.info.WorkerInfo"
 }
@@ -134,6 +136,7 @@
 	LastName  string
 }
 
+// JavaClassName  java fully qualified path
 func (UserName) JavaClassName() string {
 	return "com.bdt.info.UserName"
 }
@@ -144,6 +147,7 @@
 	Sex bool
 }
 
+// JavaClassName  java fully qualified path
 func (Person) JavaClassName() string {
 	return "com.bdt.info.Person"
 }
@@ -153,6 +157,7 @@
 	Company string
 }
 
+// JavaClassName  java fully qualified path
 func (JOB) JavaClassName() string {
 	return "com.bdt.info.JOB"
 }
@@ -163,6 +168,7 @@
 	Jobs   []JOB
 }
 
+// JavaClassName  java fully qualified path
 func (Worker) JavaClassName() string {
 	return "com.bdt.info.Worker"
 }
@@ -214,102 +220,119 @@
 
 type A0 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A0) JavaClassName() string {
 	return "com.caucho.hessian.test.A0"
 }
 
 type A1 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A1) JavaClassName() string {
 	return "com.caucho.hessian.test.A1"
 }
 
 type A2 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A2) JavaClassName() string {
 	return "com.caucho.hessian.test.A2"
 }
 
 type A3 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A3) JavaClassName() string {
 	return "com.caucho.hessian.test.A3"
 }
 
 type A4 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A4) JavaClassName() string {
 	return "com.caucho.hessian.test.A4"
 }
 
 type A5 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A5) JavaClassName() string {
 	return "com.caucho.hessian.test.A5"
 }
 
 type A6 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A6) JavaClassName() string {
 	return "com.caucho.hessian.test.A6"
 }
 
 type A7 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A7) JavaClassName() string {
 	return "com.caucho.hessian.test.A7"
 }
 
 type A8 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A8) JavaClassName() string {
 	return "com.caucho.hessian.test.A8"
 }
 
 type A9 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A9) JavaClassName() string {
 	return "com.caucho.hessian.test.A9"
 }
 
 type A10 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A10) JavaClassName() string {
 	return "com.caucho.hessian.test.A10"
 }
 
 type A11 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A11) JavaClassName() string {
 	return "com.caucho.hessian.test.A11"
 }
 
 type A12 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A12) JavaClassName() string {
 	return "com.caucho.hessian.test.A12"
 }
 
 type A13 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A13) JavaClassName() string {
 	return "com.caucho.hessian.test.A13"
 }
 
 type A14 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A14) JavaClassName() string {
 	return "com.caucho.hessian.test.A14"
 }
 
 type A15 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A15) JavaClassName() string {
 	return "com.caucho.hessian.test.A15"
 }
 
 type A16 struct{}
 
+// JavaClassName  java fully qualified path
 func (*A16) JavaClassName() string {
 	return "com.caucho.hessian.test.A16"
 }
@@ -318,6 +341,7 @@
 	Value int32 `hessian:"_value"`
 }
 
+// JavaClassName  java fully qualified path
 func (*TestObjectStruct) JavaClassName() string {
 	return "com.caucho.hessian.test.TestObject"
 }
@@ -327,6 +351,7 @@
 	Rest  *TestConsStruct `hessian:"_rest"`
 }
 
+// JavaClassName  java fully qualified path
 func (*TestConsStruct) JavaClassName() string {
 	return "com.caucho.hessian.test.TestCons"
 }
@@ -400,6 +425,7 @@
 	D       float64
 }
 
+// JavaClassName  java fully qualified path
 func (t Tuple) JavaClassName() string {
 	return "test.tuple.Tuple"
 }
@@ -488,6 +514,7 @@
 	A *bool
 }
 
+// JavaClassName  java fully qualified path
 func (t BasePointer) JavaClassName() string {
 	return "test.base.Base"
 }
@@ -578,6 +605,7 @@
 	DogName string `hessian:"-"`
 }
 
+//JavaClassName  java fully qualified path
 func (dog Dog) JavaClassName() string {
 	return "test.Dog"
 }
@@ -588,6 +616,7 @@
 	Gender string
 }
 
+//JavaClassName  java fully qualified path
 func (dog *DogAll) JavaClassName() string {
 	return "test.DogAll"
 }
diff --git a/ref_test.go b/ref_test.go
index c3964be..b3cb62f 100644
--- a/ref_test.go
+++ b/ref_test.go
@@ -32,6 +32,7 @@
 	Next     *circular
 }
 
+//JavaClassName  java fully qualified path
 func (circular) JavaClassName() string {
 	return "circular"
 }
@@ -75,6 +76,7 @@
 	Tags      map[string]*personT
 }
 
+//JavaClassName  java fully qualified path
 func (personT) JavaClassName() string {
 	return "person"
 }