Использование объявления по умолчанию @interface в Java

Одним из решений было бы использовать путь дважды: сначала зеленый, а затем следующий, используя stroke-dasharray. Черточки только по кривым. Если вам не нравится положение или длина тире, измените их на то, что вам нужно. Пробелы не чувствительны к событиям мыши, только штрихи.

В CSS я добавил #gold:hover{cursor:pointer}, чтобы вы могли видеть, что только черточки чувствительны к мыши.

Надеюсь, это поможет.

svg{border:1px solid}
use{fill:none;stroke-width:18;}
#gold:hover{cursor:pointer}
<svg viewBox="-10 50 580 360" width="580" height="360" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <path id="svg_1" d="m555,272c1,0.76736 4,85.76736 -71,97.76736c-75,12 -387,-39 -388,-39.76736c0,-0.23264 -29,-1.23264 -45,-21.23264l-42,-124.76736c-3,-11.23264 -3,-21.23264 3,-26.23264c6,-5 46,-67 69,-69.76736l474,184z" />
  </defs>
 <g>
  <title>background</title>
  <rect fill="#fff" id="canvas_background" height="360" width="580" x="-10" y="50"/>
 </g>
 <g>
  <title>Layer 1</title>
  
<use xlink:href="#svg_1" stroke="green"  />   
<use xlink:href="#svg_1" stroke="gold" stroke-dasharray ="130 370 110 60 90 40 90 400 52.45" id="gold" pointer-events="stroke" />
 </g>
</svg>

Наблюдение: сумма штрихов и разрывов составляет 1342,45, что также является общей длиной пути.

53
задан ROMANIA_engineer 24 April 2015 в 02:40
поделиться

2 ответа

Вы только что записали аннотация .

Относительно default оператор в особенности: Это используется, потому что аннотации и интерфейсы не могут иметь конструкторов, таким образом, это - единственный способ иметь значение по умолчанию для атрибута аннотации. От Спецификация языка Java:

элементу типа аннотации можно было определить значение по умолчанию для него. Это сделано следующим его (пустой) список параметров с ключевым словом default и значением по умолчанию элемента.

Значения по умолчанию применяются динамично в то время, когда аннотации прочитаны; значения по умолчанию не компилируются в аннотации. Таким образом изменение значения по умолчанию влияет на аннотации даже в классах, которые были скомпилированы, прежде чем изменение было внесено (предположение, что эти аннотации испытывают недостаток в явном значении принявшего значение по умолчанию элемента).

я отмечаю что ни одна из аннотаций в [1 112] значения по умолчанию использования java.lang.annotation, все же.

<час>

Использование: у Вас есть аннотация @HelloWorld с атрибутом sayHello. Вы могли поместить его на класс как это:

@HelloWorld(sayHello="Hi")
public class MyClass {
}

, Так как у Вас есть значение по умолчанию, Вы могли просто поместить

@HelloWorld
public class MyClass {
}

(Обратите внимание, что в документе говорится, "В аннотациях с единственным элементом, элемент нужно назвать value"; я верю единственной причине сделать, это - то, что Вы могли просто записать @HelloWorld("Hi"), не имея необходимость называть параметр.)

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

Наконец, устанавливая RetentionPolicy позволяет Вам решить, должна ли аннотация быть отброшена компилятором, отброшенным VM, или всегда сохраняла.

<час>

Два пакета, которые могли бы также быть интересными: javax.annotation и javax.annotation.processing. И здесь пример использования обработки аннотации для анализа исходного кода.

61
ответ дан Michael Myers 7 November 2019 в 08:50
поделиться

Это аннотация , Вы объявляете не интерфейс. Это было добавлено в Java 1.5.

4
ответ дан ScArcher2 7 November 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: