java - 确保输入参数满足多个类型标准

标签 java generics types

我有两个接口(interface),A 和 B。我正在编写一个函数,我希望它只接受使用这两个接口(interface)的对象。这是我一直在尝试的一些事情。我希望我的问题很清楚。

    public void function((? implements A,B) thing) {
        // do things
    }

    public <T extends A, T extends B> void function(T thing) {
        // do things
    }

    public <T extends A,B> void function(T thing) {
        // do things
    }

但是这些尝试都没有奏效。预先感谢您对此的任何见解。

最佳答案

您可以尝试创建一个从 AB 扩展的第三个接口(interface),并将其用作您的方法标记...

public interface C extends A, B {
}

那么你只需要担心C...

public <T extends C> void function(T thing) {
    // do things
}

这确实意味着任何调用该方法的人都必须实现 C 而不仅仅是 AB,但它应该让您了解线...

那是...

public class MyAB implements A, B {
}

无法传递给functionMyAB必须实现C

关于java - 确保输入参数满足多个类型标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18819325/

相关文章:

c - 指向指针: What datatype with variable length strings?的指针

java - 如何将 String ArrayList 的内容转换为 char ArrayList

从 mysql 填充 JTable 的 java.lang.NullPointerException 错误

java - 在 Java 中实现泛型中的 vs 扩展

java - 关闭资源文件的泛型方法

C# 使用 System.Type 作为通用参数

types - Agda函数,类型上的函数匹配

java - Spring REST - 抽象父类(super class)中的 @createdDate 抛出错误

java - weblogic部署InternalException : Transaction marked rollback or not expected transaction

java - 在保留泛型的同时创建不同的 JTable