java - 创建一个匿名类,传入构造函数参数并实现其接口(interface)

标签 java

java version "1.7.0_45"

你好,

带有构造函数参数的类,该类具有将在客户端中实现的接口(interface)

public class SInvitationListenerImp {
    public interface MUCRoomListener {
        void onInvitationReceived(String roomName, String inviter, String reason, String password, String message);
    }

    public SInvitationListenerImp(MUCRoomListener roomListenerEvent, int clientConnection) {
        mMUCRoomListener = roomListenerEvent;
        mClientConnection = clientConnection;
    }
}

在我的客户端中,我可以创建一个匿名类,传入构造函数参数并实现接口(interface)。

但是,这不适用于争论

new SInvitationListenerImp(MainActivity.this, connection).MUCRoomListener() {
            @Override
            public void onInvitationReceived(String s, String s1, String s2, String s3, String s4) {

            }
        };

这无需构造函数参数即可工作。但是,需要参数(所以这不能满足我的需求)

new SInvitationListenerImp.MUCRoomListener() {
      @Override
          public void onInvitationReceived(String s, String s1, String s2, String s3, String s4) {
      }
};

是否可以将参数传递给构造函数并实现接口(interface)?

非常感谢您的建议

更新结果为'.'或预期的“)”:

new SInvitationListenerImp(new SInvitationListenerImp.MUCRoomListener() {
        @Override
        public void onInvitationReceived(String s, String s1, String s2, String s3, String s4) {
        }
    } MainActivity.this, connection);

最佳答案

你的语法是错误的......你可能需要这样的东西,

new SInvitationListenerImp(new SInvitationListenerImp.MUCRoomListener() {
            @Override
            public void onInvitationReceived(String s, String s1, String s2, String s3, String s4) {
                // Interface method body.
            }

        }, connection);

关于java - 创建一个匿名类,传入构造函数参数并实现其接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32559678/

相关文章:

java - 当我在 Java Paint 程序中更改颜色时,整个颜色会发生变化

java - 使用 Maven 的 Eclipse 动态 Web 项目在 mvn tomcat7 :run 上抛出错误

Java - 奇怪的ConcurrentModificationException

java - 如何检查在单元测试上下文中执行的方法?

java - 如何使用 JAVA 8 检查对象的所有字段是否为 NULL?

java - 在双括号初始化中引用自身的对象能否给出 NPE?

java - 使用百分比时,找到一个随机整数创建另一个整数

java - 如何从 Java 中的 TextField 中删除逗号

java - 在java中运行fortran exe

java - 反序列化 hibernate 和 jackson 中的延迟加载