Вот ключевые различия и сходства между внутренним классом Java и статическим вложенным классом.
Надеюсь, что это поможет!
Outerclass.InnerClass innerObject = outerObject.new Innerclass();
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
Согласно документации Oracle есть несколько причин ( полная документация ):
blockquote>
- Это способ логически группы классов, которые используются только в одном месте: если класс полезен только для одного другого класса, то логично вставлять его в этот класс и поддерживать вместе. Вложение таких «вспомогательных классов» делает их пакет более упорядоченным.
- Он увеличивает инкапсуляцию: рассмотрим два класса верхнего уровня: A и B, где B нужен доступ к членам A, которые иначе были бы объявлены частными. Скрывая класс B в классе A, члены A могут быть объявлены частными, а B может получить к ним доступ. Кроме того, сам B может быть скрыт от внешнего мира.
- Это может привести к более легко читаемому и поддерживаемому коду: Вложение небольших классов в классы верхнего уровня помещает код ближе к тому, где он используется.
Вот быстрый ответ
Get-ChildItem -Recurse -Include *.log | select-string ERROR
, я нашел его здесь , который имеет большой всесторонний ответ!
Например, найти все экземпляры «#include» в файлах c в этом каталоге и во всех подкаталогах.
gci -r -i *.c | select-string "#include"
gci - это псевдоним get-childitem.
Только подробно остановиться на ответе Monroecheeseman. gci является псевдонимом для, Добираются-ChildItem (который является эквивалентом dir или ls), переключатель-r делает рекурсивный поиск, и средства-i включают.
Передача по каналу результата того запроса к избранной строке имеет его, считал каждый файл и ищут строки, соответствующие регулярному выражению (обеспеченным в этом случае является ОШИБКА, но это может быть любое регулярное выражение.NET).
результатом будет набор объектов соответствия, показывая соответствие строки, файл, и и другая сопутствующая информация.
if ($entry.EntryType -eq "Error")
Будучи объектно-ориентированным, вы хотите протестировать данное свойство с помощью одного из стандартных операторов сравнения, которые вы можете найти здесь .
У меня есть сценарий PS , который сейчас просматривает журналы для меня удаленно - некоторые простые изменения должны заставить вас работать.
edit: Полагаю, мне следует добавить, что для этого уже создан командлет, если вы не хотите развернуть его так, как я. Проверить:
man Get-EventLog
Get-EventLog -newest 5 -logname System -EntryType Error