Java使用泛型获取所有实例的列表

Java使用泛型获取所有实例的列表,java,Java,我有一个静态类,其中包含一些静态成员: public static class Foo { private static Bar one = new Bar(); private static Bar two = new Bar(); private static Bar three = new Bar(); ... private static Bar n = new Bar(); } 我想要一个返回所有条的方法: 公共静态列表getbar() 您能告诉我如何使用Java泛型获取所有实例吗?

我有一个静态类,其中包含一些静态成员:

public static class Foo {
private static Bar one = new Bar();
private static Bar two = new Bar();
private static Bar three = new Bar();
...
private static Bar n = new Bar();
}
我想要一个返回所有
的方法:

公共静态列表getbar()

您能告诉我如何使用Java泛型获取所有实例吗?

尝试以下方法:

public static List<Bar> getBars(){
    List<Bar> res = new ArrayList<Bar>();
    res.add(one);
    res.add(two);
    ...
    res.add(n);
    return res;
}
公共静态列表getbar(){
List res=new ArrayList();
决议增加(一);
决议增补(二);
...
决议增补(n);
返回res;
}

您是否在考虑类型安全枚举模式的修改版本

import java.util.ArrayList;
import java.util.List;

public class TypeSafeEnum{
    private String data=null;
    private static List<TypeSafeEnum> list=new ArrayList<>();
    private TypeSafeEnum(String data){
        this.data=data;
        list.add(this);
    }
    private static TypeSafeEnum One=new TypeSafeEnum("one");
    private static TypeSafeEnum Two=new TypeSafeEnum("two");
    private static TypeSafeEnum Three=new TypeSafeEnum("three");
    private static TypeSafeEnum Four=new TypeSafeEnum("four");
    public String getValue(){
        return data;
    }
    public static List<TypeSafeEnum> getMembers(){
        return list;
    }
}
得到

one
two
three
four

仿制药在这里帮不了你。你甚至都没有把它们放在一个列表中。为什么你要把它们分成所有这些单独命名的栏来开始呢?它们都应该放在一个列表中,这样你就可以拥有你想要的任何数量。如果你想拥有所有这些变量,我也不知道为什么要使用静态类?如果你发布你想做的事情,我可以帮助你更好地设计它,但这没有多大意义,因为我想在其他类中引用它们,比如
return Foo.one
我理解这个问题,我也能理解为什么你可能想用这样的东西,但请看一下。如果您描述更多您想要的内容,我们可以更好地帮助您,例如,建议您在其他类中使用Enum或Reflection,例如:
return Foo.one
one
two
three
four