Your TestNonStatic has an implicit pedigree that you must indicate if it is a raw type
public TestStatic(Main.TestNonStatic nonStatic) {
or general type
public TestStatic(Main<String>.TestNonStatic nonStatic) {
or using a non-static class
private class TestStatic { public TestStatic(TestNonStatic nonStatic) {
It will not imply the following, since the class is static
public TestStatic(Main<T>.TestNonStatic nonStatic) {
Why I don't have a default behavior, perhaps because it can lead to even more obscure error messages;)
source share