class Test { void foo(T... t){ new InnerClass(t).invoke(); } void bar(){ foo(""); } private class InnerClass { private T[] t; public InnerClass(T[] t) { this.t = t; } public void invoke() { for (T t1 : t) {} } } }