Это не работает, потому что xargs
ожидает мочь к exec
программа , данная как ее параметр.
С тех пор foobar
в Вашем случае просто bash
псевдоним или функция, там не программа для выполнения.
, Хотя это включает запуск bash
для каждого файла, возвращенного find
, Вы могли записать маленький сценарий оболочки таким образом:
#!/bin/bash
. $(HOME)/.bashrc
func $*
и затем передают название того сценария как параметр к xargs
Я думаю, что это определенно главный кандидат для статического метода. Он не меняет никаких свойств, полей и т.д. класса.
Вот пример:
class MyClass
{
public static void MakeStatusTheSame(MyClass mc, MySecondClass msc)
{
mc.status = msc.status;
}
private void MakeStatusTheSame(MySecondClass msc)
{
this.status = msc.status;
}
private int status;
}
Кроме того, вы можете сделать его методом расширения (который также будет статическим):
public static class Extensions
{
public static MyClass MakeStatusTheSame(this MyClass mc, MySecondClass msc)
{
mc.status = msc.status
return mc; /* make the method chainable */
}
}
Думаю, да; видение того, что метод является статическим, является четким указанием на то, что метод не должен взаимодействовать с какими-либо членами экземпляра.
Представьте себе отладку нестатического метода и осознание того, что экземпляр не затрагивается. Мгновенный запах, и если нет комментария, объясняющего, что делает функция, вы можете отвлечься от реальной проблемы.
Рискуя показаться противоположным, я должен признать, что мне не нравится смешивать статические методы с методами экземпляра; и я вообще не люблю статические методы. Статические методы трудно протестировать, их сложно переопределить и сложно поддерживать. Я предпочитаю объединять все статические методы для работы с объектами Foo в один класс FooUtils или, что еще лучше, в одноэлементный экземпляр класса FooSomethingDoer.
Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.
Должен признать, что мне не нравится смешивать статические методы с методами экземпляра; и я вообще не люблю статические методы. Статические методы трудно протестировать, их сложно переопределить и сложно поддерживать. Я предпочитаю объединять все статические методы для работы с объектами Foo в один класс FooUtils или, что еще лучше, в одноэлементный экземпляр класса FooSomethingDoer.Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.
Должен признать, что мне не нравится смешивать статические методы с методами экземпляра; и я вообще не люблю статические методы. Статические методы трудно протестировать, их сложно переопределить и сложно поддерживать. Я предпочитаю использовать все статические методы для работы с объектами Foo в одном классе FooUtils или, что еще лучше, в одноэлементном экземпляре класса FooSomethingDoer.Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.
трудно переопределить и трудно поддерживать. Я предпочитаю использовать все статические методы для работы с объектами Foo в одном классе FooUtils или, что еще лучше, в одноэлементном экземпляре класса FooSomethingDoer.Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибаться и избегать их, когда это возможно.
трудно переопределить и трудно поддерживать. Я предпочитаю использовать все статические методы для работы с объектами Foo в одном классе FooUtils или, что еще лучше, в одноэлементном экземпляре класса FooSomethingDoer.Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.
я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно. я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.Я обычно следую рекомендациям R #. Это частный метод, поэтому (надеюсь) вы не пишете для него модульные тесты. Если сделать его статическим, явно указано, что он не использует никаких членов экземпляра, что упрощает проверку на наличие побочных эффектов.