Эквивалент 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 ответа:
Хотя аннотации 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