Это может помочь, если вы действительно объясните, как будет использоваться ваш класс Columns
. Вы пытаетесь получить экземпляр этого или вы пытаетесь получить, какой это класс?
Вы можете вернуть Class
экземпляр, чтобы разрешить вызывающему методу использовать newInstance()
на нем:
public static Class<Columns> getColumnEnumerator()
{
int x = Columns.length;
return Columns.class;
}
Или вам придется изменить Columns
на что-то вроде:
public class SomeClass
{
public static class Columns<CC>
{
public final int LENGTH = 5; // changed to a final, or create an accessor
...
private Columns() { ... } // private constructor
}
public static Columns<?> getColumnEnumerator()
{
Columns columns = new Columns(); // only SomeClass can instantiate this
int x = columns.LENGTH;
return columns;
}
}
Но из одного из ваших комментариев о "создании суперкласса для SomeClass
, который возвращает Columns
", похоже, это проблема дизайна. Вы не можете переопределить статические методы, поэтому наследование может ухудшить ситуацию.