Эквивалент Java для AttributeUsage C#


Мне нужно перевести некоторый код с 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 ? Спасибо

2 3

2 ответа:

Хотя аннотации Java действительно имеют много общего с атрибутами C#, OP задает конкретный вопрос.

В Java нет прямого эквивалента атрибута C# AttributesUsage. это основной атрибут C#, который применяется при создании собственных пользовательских атрибутов. Он используется для управления поведением вашего атрибута.

Вы используете его для:

  • ограничьте возможные цели вашего атрибута. Смотрите: перечисление AttributeTargets для различных вариантов.
  • решите, будет ли атрибут применяться к унаследованным членам
  • решите, разрешено ли вам использовать этот атрибут несколько раз для одного и того же члена

В этом случае автор кода на C# придерживается значений по умолчанию. Пользовательский атрибут, который они написали, Может быть применен к любому классу и не имеет интересного поведения по отношению к членам наследования (он применяется к унаследованным членам), и если он может использоваться несколько раз на члене (не может).

Чтобы перенести этот код на Java, вам нужно создать аннотацию Java, которая делает то же самое, что и атрибут автора C# PVAResponseAttribute.

Однако в этом случае вам не нужно беспокоиться о том, что нет аннотации Java, которая является прямым эквивалентом атрибута C# AttributesUsage.

Это http://java.net/downloads/opends/promoted-builds/2.2.1/javadoc/org/opends/server/types/AttributeUsage.html ссылка может помочь вам.

Если вы хотите конвертировать свой проект непосредственно в java попробуйте http://codeporting.com/apps/csharp-2-java