【问题标题】:Java equivalent for AttributeUsage C#AttributeUsage C# 的 Java 等效项
【发布时间】:2012-06-27 12:04:44
【问题描述】:

我必须将一些代码从 C# 转换为 Java,并且我有以下代码:

 [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public class PVAResponseAttribute : XmlRootAttribute
    {
        private const string ROOT_ELEMENT_NAME = "data";

        public PVAResponseAttribute()
            : base(ROOT_ELEMENT_NAME)
        {

        }

在 Java 中这个等价物是什么? 谢谢

【问题讨论】:

标签: c# java attributes equivalent


【解决方案1】:

虽然 Java 的注解确实与 C# 属性有很多共同点,但 OP 提出了一个特定的问题。

在 Java 中没有 C# AttributesUsage attribute 的直接等效项。这是您在创建自己的自定义属性时应用的 C# 核心属性。它用于控制属性的行为。

你用它来:

  • 限制属性的可能目标。有关各种选项,请参阅 AttributeTargets enumeration
  • 决定属性是否适用于继承的成员
  • 决定是否允许您在同一成员上多次使用此属性

在这种情况下,C# 代码的作者坚持使用默认值。他们编写的自定义属性可以应用于任何类,并且对于继承成员没有有趣的行为(它适用于继承的成员),如果它可以在成员上多次使用(它不能)。

要将此代码移植到 Java,您需要创建与作者的 C# PVAResponseAttribute 属性相同的 Java 注释。

但是,在这种情况下您不必担心没有与 C# AttributesUsage 属性直接等效的 Java 注释。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2010-10-15
      • 2011-06-16
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      相关资源
      最近更新 更多