передача входного значения непосредственно в функцию внутри цикла

Один из вариантов - передать Bar.class (или любой другой тип, который вас интересует, любым способом указания соответствующей ссылки Class<T>) и сохранить это значение как поле:

public class Test
{   
    public static void main(String [] args)
        throws Exception // Just for simplicity!
    {
        Generic<Bar> x = new Generic<Bar>(Bar.class);
        Bar y = x.buildOne();
    }
}

public class Generic<T>
{
    private Class<T> clazz;

    public Generic(Class<T> clazz)
    {
        this.clazz = clazz;
    }

    public T buildOne() throws InstantiationException,
        IllegalAccessException
    {
        return clazz.newInstance();
    }
}

public class Bar
{
    public Bar()
    {
        System.out.println("Constructing");
    }
}

Другой вариант - иметь «фабричный» интерфейс, и вы передаете фабрику конструктору универсального класса. Это более гибко, и вам не нужно беспокоиться об исключениях отражения.

0
задан Lynx 13 July 2018 в 11:43
поделиться

2 ответа

v-model работает при правильном использовании.

См. этот JS Fiddle: https://jsfiddle.net/eywraw8t/167740/

Но если вы хотите использовать функцию для обработки значений , это также прекрасно, но гораздо более подробный.

См. этот JS Fiddle: https://jsfiddle.net/eywraw8t/167731/

0
ответ дан Julian Paolo Dayag 17 August 2018 в 13:02
поделиться
  • 1
    Спасибо, верный способ очень хорошо работает – Zak Micallef 13 July 2018 в 14:25
  • 2
    Круто. какой бы метод вы ни выбрали, на самом деле отлично. :) – Julian Paolo Dayag 13 July 2018 в 15:15

См. документы: https://vuejs.org/v2/api/#v-on

[...] метод получает собственное событие как единственный аргумент. Если используется оператор inline, оператор имеет доступ к специальному свойству $event: v-on:click="handle('ok', $event)".

"input" event имеет свойство target , которое в вашем случае является вашим <input> элементом, на котором вы можете прочитать его текущий value .

new Vue({
  el: '#app',
  methods: {
    saveValue(event) {
      const target = event.target;
      const value = target.value;
      console.log(value);
    },
    otherMethod(text1, event) {
      console.log(text1);
      console.log(event.target.value);
    },
  },
});
<script src="https://unpkg.com/vue@2"></script>

<div id="app">
  <ul>
    <li v-for="i in 3">
      {{i}}<input @input="saveValue" />
    </li>
  </ul>
  <p>
    With inline statement:
    <input @input="otherMethod('other', $event)" />
  </p>
</div>

0
ответ дан ghybs 17 August 2018 в 13:02
поделиться
Другие вопросы по тегам:

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