Повторно использовать Javadoc внутри Javadoc? [Дубликат]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
62
задан Ciro Santilli 新疆改造中心 六四事件 法轮功 14 February 2015 в 21:01
поделиться

4 ответа

Я не знаю никакой поддержки, но я бы полностью javadoc метод с большинством аргументов, а затем ссылаюсь на него в другом javadoc, как это. Я думаю, что он достаточно ясен и избегает избыточности.

/**
 * {@code fruitType} defaults to {@link FruitType#Banana}.
 *
 * @see Forest#addTree(int, Fruit, int)
 */
52
ответ дан Sean Owen 28 August 2018 в 02:50
поделиться

Поместите документацию в интерфейс, если сможете. Классы, реализующие интерфейс, затем наследуют javadoc.

interface X(){
 /** does fooish things */
 void foo();
}

class Ax implements X{ //automatically inherits the Javadoc of "X"
 @Override 
 public void foo(){/*...*/} 
}

Если вы хотите наследовать документацию и добавить к ней свои собственные материалы, вы можете использовать {@inheritDoc}:

class Bx implements X{
 /**
  * {@inheritDoc}
  * May fail with a RuntimeException, if the machine is too foo to be true.
  */
 @Override 
 public void foo(){/*...*/}
}

См. также: http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javadoc.html#inheritingcomments

Теперь как я понял, это не совсем то, что вы хотите (вы хотите избежать повторений среди методов в одном классе / интерфейсе). Для этого вы можете использовать @see или @link, как описано другими, или вы можете подумать о своем дизайне. Возможно, вы бы хотели избежать перегрузки метода и использовать один метод с объектом параметра, например:

public Tree addTree(TreeParams p);

Для использования следующим образом:

forest.addTree(new TreeParams().with(Fruits.APPLE).withLeaves(1500).withHeight(5));

Вам может понравиться этот шаблон copy-mutator здесь:

https://brixomatic.wordpress.com/2010/03/10/dealing-with-immutability-and-long -constructors-in-a-fluent-way /

В зависимости от количества комбинаций параметров это может быть более простым и понятным способом, поскольку Params-Class может захватывать значения по умолчанию и иметь javadoc для каждого параметра.

0
ответ дан Brixomatic 28 August 2018 в 02:50
поделиться

Вероятно, нет хорошего стандартного метода, так как даже исходный код JDK9 просто копирует пасты больших кусков документации, например, по адресу:

Повторяются 4 строки комментария. Yikes, non-DRYness.

4
ответ дан Ciro Santilli 新疆改造中心 六四事件 法轮功 28 August 2018 в 02:50
поделиться

Я бы просто задокументировал ваш «полный» метод (в данном случае addTree(int,Fruit,int)), а затем в JavaDoc для других методов ссылается на это и объясняет, как / какие значения по умолчанию используются для аргументов, не предоставленных.

/**
 * Works just like {@link ThisClass#myPow(double,double)} except the exponent is always 
 * presumed to be 2. 
 *
 * @see ThisClass#myPow(double,double)
 */
 static double myPow( double base );
8
ответ дан Community 28 August 2018 в 02:50
поделиться
Другие вопросы по тегам:

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