繁体   English   中英

是否有与 C# 中的 AttributeUsage(AttributeTargets.Property) 等效的 Java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM