Java 通过等级<&燃气轮机;cls作为方法参数?

Java 通过等级<&燃气轮机;cls作为方法参数?,java,class,singleton,Java,Class,Singleton,我很难完成这个方法 我试图编写一个方法,让我的main传递两个参数:一个Talker对象实例和一个cls类对象,该类对象表示侦听器应该从中扩展以接收消息的类型。我对Java非常陌生,需要一些帮助 下面是该方法的代码: public void sMessage(Talker talker, Class<?> cls) { for ( Listener l : mParticipants) { if (cls.isAssignableFrom(cls.ge

我很难完成这个方法

我试图编写一个方法,让我的main传递两个参数:一个Talker对象实例和一个cls类对象,该类对象表示侦听器应该从中扩展以接收消息的类型。我对Java非常陌生,需要一些帮助

下面是该方法的代码:

public void sMessage(Talker talker, Class<?> cls) {
    for ( Listener l : mParticipants)
    {
        if (cls.isAssignableFrom(cls.getSuperclass())) {
            l.onMessageReceived(talker.getMessage());   
        }
    }
}

没有真正遵循我到目前为止看到的例子。有什么建议吗?

我不明白
cls
应该代表什么。但是,您应该得到如下信息:

singletonDemo.sMessage(demoTalker, SomeClass.class);
或:

请参考,
cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。
的isAssignableFrom
表示:

确定此类对象表示的类或接口是否相同 作为类或接口,或是类或接口的超类或超接口,由 指定的类参数


我不明白
cls
应该代表什么。但是,您应该得到如下信息:

singletonDemo.sMessage(demoTalker, SomeClass.class);
或:

请参考,
cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。
的isAssignableFrom
表示:

确定此类对象表示的类或接口是否相同 作为类或接口,或是类或接口的超类或超接口,由 指定的类参数


我不明白
cls
应该代表什么。但是,您应该得到如下信息:

singletonDemo.sMessage(demoTalker, SomeClass.class);
或:

请参考,
cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。
的isAssignableFrom
表示:

确定此类对象表示的类或接口是否相同 作为类或接口,或是类或接口的超类或超接口,由 指定的类参数


我不明白
cls
应该代表什么。但是,您应该得到如下信息:

singletonDemo.sMessage(demoTalker, SomeClass.class);
或:

请参考,
cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。
的isAssignableFrom
表示:

确定此类对象表示的类或接口是否相同 作为类或接口,或是类或接口的超类或超接口,由 指定的类参数


@BornToCode调用该方法是正确的,但您希望用该方法实现的功能仍然有点错误

cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。这是因为您不能接受父类并将其分配给子类。我相信您正在寻找的是一种检查侦听器是否扩展指定类的方法。您可以通过获取侦听器的类来实现这一点

cls.isAssignableFrom(l.getClass())
或者更简单地说

cls.isInstance(l)

@BornToCode调用该方法是正确的,但您希望用该方法实现的功能仍然有点错误

cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。这是因为您不能接受父类并将其分配给子类。我相信您正在寻找的是一种检查侦听器是否扩展指定类的方法。您可以通过获取侦听器的类来实现这一点

cls.isAssignableFrom(l.getClass())
或者更简单地说

cls.isInstance(l)

@BornToCode调用该方法是正确的,但您希望用该方法实现的功能仍然有点错误

cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。这是因为您不能接受父类并将其分配给子类。我相信您正在寻找的是一种检查侦听器是否扩展指定类的方法。您可以通过获取侦听器的类来实现这一点

cls.isAssignableFrom(l.getClass())
或者更简单地说

cls.isInstance(l)

@BornToCode调用该方法是正确的,但您希望用该方法实现的功能仍然有点错误

cls.isAssignableFrom(cls.getSuperclass())
将始终返回false。这是因为您不能接受父类并将其分配给子类。我相信您正在寻找的是一种检查侦听器是否扩展指定类的方法。您可以通过获取侦听器的类来实现这一点

cls.isAssignableFrom(l.getClass())
或者更简单地说

cls.isInstance(l)

啊,这就是我在oracle文档网站上找到的例子。我认为这是一个标准的命名约定/占位符,用于讨论中的类名。isAssignableFrom(Class cls)是的,所以你对这个调用的建议是正确的,现在我正在尝试解决这个方法本身。啊,就是我在oracle文档网站上找到的例子。我认为这是一个标准的命名约定/占位符,用于讨论中的类名。isAssignableFrom(Class cls)是的,所以你对这个调用的建议是正确的,现在我正在尝试解决这个方法本身。啊,就是我在oracle文档网站上找到的例子。我认为这是一个标准的命名约定/占位符,用于讨论中的类名。isAssignableFrom(Class cls)是的,所以你对这个调用的建议是正确的,现在我正在尝试解决这个方法本身。啊,就是我在oracle文档网站上找到的例子。我认为这是一个标准的命名约定/占位符,用于讨论中的类名。isAssignableFrom(CLASSCLS)是的,所以您对调用的建议是正确的,现在我正在尝试解决方法本身。