[英]Is there a Java equivalent to AttributeUsage(AttributeTargets.Property) from C#
我正在将 C# 解决方案迁移到 Java 并且是 Java 的初学者我在迁移以下代码时遇到了困难:在 C# 中:
[AttributeUsage(AttributeTargets.Property)]
public class DefaultField: Attribute
{
public DefaultField()
{
this.HasDefaultValue = false;
}
public DefaultField(object defaultValue)
{
this.DefaultValue = defaultValue;
this.HasDefaultValue = true;
}
internal bool HasDefaultValue;
internal object DefaultValue;
}
以下面的用法为例:
[DefaultField(1.0)]
public double WindowSize { get; set; }
[DefaultField("Summary")]
public string WindowTitle { get; set; }
我尝试查看界面和注释,但我唯一能做的就是为特定对象创建一个界面,例如 Double、Int、String,甚至无法检查是否设置了默认值
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.FIELD)
public @interface DefaultField{
double value();
}
使用以下用法:
@DefaultField(0.0)
public double val;
任何帮助将不胜感激。
如果您希望能够传递各种类型的值,即@DefaultField(0.1)
或@DefaultField("string")
那么您必须将value()
声明为Object
类型。
您为处理注释而实现的其余代码将必须验证它是否与字段类型匹配(我假设您只想设置为该值,以防它没有以其他方式初始化)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.