Ориентационный ученик, который является новичком для Java и / или вложенных классов
Вложенные классы могут быть либо: 1. Статические вложенные классы. 2. Нестатические вложенные классы. (также известный как Внутренние классы) => Пожалуйста, запомните это
1.Интерные классы Пример:
class OuterClass {
/* some code here...*/
class InnerClass { }
/* some code here...*/
}
Внутренние классы - это подмножества вложенных классов:
Специальность класса Inner:
2.Static Вложенные классы: Пример:
class EnclosingClass {
static class Nested {
void someMethod() { System.out.println("hello SO"); }
}
}
Случай 1: Создание статического вложенного класса из не закрывающего класса
class NonEnclosingClass {
public static void main(String[] args) {
/*instantiate the Nested class that is a static
member of the EnclosingClass class:
*/
EnclosingClass.Nested n = new EnclosingClass.Nested();
n.someMethod(); //prints out "hello"
}
}
Случай 2: Создание статического вложенного класса из класса-оболочки
class EnclosingClass {
static class Nested {
void anotherMethod() { System.out.println("hi again"); }
}
public static void main(String[] args) {
//access enclosed class:
Nested n = new Nested();
n.anotherMethod(); //prints out "hi again"
}
}
Специальность статических классов:
Заключение: Вопрос: В чем основное отличие между внутренним классом и статический вложенный класс в Java? Ответ: просто рассмотрите особенности каждого класса, упомянутого выше.
Нет простого способа сделать это без дальнейшей работы. Поработав немного, у меня есть кое-что, что может вам помочь.
git bisect start master f9d5924
for rev in $(git rev-list f9d5924..master --merges --first-parent); do
git rev-list $rev^2 --not $rev^
done | xargs git bisect skip
Это начинает git bisect с f9d5924
как ваш хороший коммит и master
как ваш плохой коммит. Затем он находит предков с правой стороны каждого коммита слияния, которые не находятся на левой стороне. Он передает этих предков в git bisect skip
, чтобы пропустить их. Однако, когда он выяснит, какой коммит плохой, он покажет все возможные пропущенные коммиты из плохого коммита слияния. как в следующем
$ git bisect good
There are only 'skip'ped commits left to test.
The first bad commit could be any of:
0622204625d8817c5d8fd1a2a68b3aa91f2dcdf9
0c771566b9e77e3bdc0a66a7404c8eae9f321a68
5098b44f43f84b213eaab110073a6acd26a5cc02
8b05a808d5e15852fbddaa529ba241fdac8ff693
b0c755c3fa57e3c8d527e76fae38bc9925c01353
We cannot bisect more!
В этом случае b0c755c3fa57e3c8d527e76fae38bc9925c01353
был коммит слияния, на котором он не прошел.
Примечание: Это не будет работать, если у вас есть слияние осьминога (слияние, объединяющее более двух ветвей).
Я тоже хотел бы найти правильное и нативное решение этого вопроса, проверяя только коммиты на одной ветви и, таким образом, «обвиняя» весь запрос на слияние и / или извлечение. Однако:
, поскольку коммиты главной ветки являются единственными (предположительно) стабильными, я хочу сделать git bisect только на этой ветке.
Если проблема, вызывающая этот вопрос, заключается в том, что некоторые коммиты, которые вам дают, нарушены и вы не можете их протестировать, вы можете использовать:
git bisect skip
Для пропустите этот коммит полностью и отметьте другой. Это решит проблему, возникшую у вас со сломанными коммитами. Как только вы найдете коммит, который нарушил эту функцию, вы можете проследить его до слияния с отслеживаемой веткой.
Полагаю, вы могли бы git bisect skip
ВСЕ коммиты, которые не являются слияниями, либо проверять вручную, либо с помощью скрипта. Это дало бы поведение, заданное в вопросе.
Чтобы использовать git bisect на одной ветви без проверки на мастеринг:
Будьте на ветви, которую хотите протестировать.
git bisect start --no-checkout
Это приведет к биссектрису только в текущей ветви
Продолжите биссектрику как обычно.