|javamy| 在给字段添加注解的时候,有些说明是可写可不写的,但是Java一定要全写,加default后就可以,但String default 不了 谢谢
Java code
package z.core.hibernateCore.attribute;
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
import java.lang.annotation.RetentionPolicy;
/**
* 标示为数据字段
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DataColumn {
/**
* 字段描述
*
* @return
*/
public String name();
/**
* 是否为多对一关系
*
* @return
*/
public boolean many_to_one() default false;
/**
* 默认值
*
* @return
*/
public String defaultValue() default null;
}
上面是一个注解
但是: public String defaultValue() default null;
这一句不通过,String的default 不是 null 吗?
因为不加default的话在给字段加注解的时候就一定得写全
只能:@DataColumn(name = "用户ID",defaultValue="默认值")
不能:@DataColumn(name = "用户ID")
那String的default是什么 谢谢
------解决方案--------------------
public String defaultValue(); 不写就是默认为null,写了必须有值比如""、"nihao";
------解决方案--------------------
注释应该不能设置默认值为null,它应该是一个编译期常量。
用这种方式: "" 或者 Void.class。
------解决方案--------------------