Java中的类类型作为字段

Java中的类类型作为字段,java,class,Java,Class,我的问题可能看起来很奇怪,我不知道这是否可能,但事实是: 我有几个类(用例)都实现了一个接口=>IUseCase UseCase1 implementing IUseCase UseCase2 implementing IUseCase etc. 我还有另一个类“UseCaseContext”,它应该携带一些关于几个用例的信息 我的目标是每个UseCase拥有一个UseCaseContext实例。为此,我需要UseCaseContext中的一个字段,该字段告诉我该上下文是否与UseCase1或

我的问题可能看起来很奇怪,我不知道这是否可能,但事实是:

我有几个类(用例)都实现了一个接口=>
IUseCase

UseCase1 implementing IUseCase
UseCase2 implementing IUseCase
etc.
我还有另一个类“
UseCaseContext
”,它应该携带一些关于几个用例的信息

我的目标是每个
UseCase
拥有一个
UseCaseContext
实例。为此,我需要UseCaseContext中的一个字段,该字段告诉我该上下文是否与UseCase1或UseCase2等相关

因此,除了在字段中存储用例实例之外,还有其他方法可以确定my
UseCaseContext
与哪个
UseCaseContext
相关吗

我知道这可能会让人困惑,所以如果需要我解释,请告诉我:)

谢谢大家!

IUseCase some_instance = new UseCaseX();
String className = some_instance.getClass().getSimpleName()
这将以字符串形式返回UseCaseX。这就是你想要的吗


另外,如果您不需要类的字符串名称,您可以使用class对象(class clazz=some_instance.getClass())来区分一个用例和另一个用例。

正如注释中已经指出的,只需在
UseCaseContext
中存储一个类引用即可:

public class UseCaseContext 
{
  private Class<? extends IUseCase> useCaseClass;
  ...
}
公共类UseCaseContext
{
私有类尝试以下方法:

 public class UseCaseContext {

     private Class useCaseClass;

     public UseCaseContext(Class useCaseClass) {
        this.useCaseClass = useCaseClass;
     }
 }

然后您可以简单地调用:
newUseCaseContext(instance.getClass())

你可以使用
对象作为一个字段。看起来你想要一个
映射
?你在寻找单例模式吗?@cdhowie:不是一个真正的映射,只是一个可以帮助我识别我正在处理的用例的字段!@ogzd:我认为类字段可能就是我正在寻找的,那么我应该存储类似的东西吗其中的e“myusecase.class”?为什么使用名称而不是
class