Я натолкнулся на следующий код. Это интерфейс, в котором есть назначение атрибутов. Я понял, что интерфейсы могут использоваться только для объявления методов. Какова цель этого?Какова семантика назначения в интерфейсе?
interface Literals {
/**
* The meta object literal for the '{@link bowling.impl.PlayerImpl <em>Player</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see bowling.impl.PlayerImpl
* @see bowling.impl.BowlingPackageImpl#getPlayer()
* @generated
*/
EClass PLAYER = eINSTANCE.getPlayer();
/**
* The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EAttribute PLAYER__NAME = eINSTANCE.getPlayer_Name();
/**
* The meta object literal for the '<em><b>Date Of Birth</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EAttribute PLAYER__DATE_OF_BIRTH = eINSTANCE.getPlayer_DateOfBirth();
}
Да, но это не говорит, почему это должен быть интерфейс. В вашем примере это все равно может быть классным литералом. Они могли бы написать публичный статический окончательный а также ^^ – Friwi
@Friwi True, но это был не вопрос «почему это должно быть», это вопрос «что такое семантика», на что ответ: они константы. – Andreas